2015-06-08 2 views
0

Как закодировать PASS или FAIL, используя случай, когда оператор суммирует общее?2008R2 Код SQL для случая, когда используется СУММ?

Если оценка равна 46, то перейдите. Если равно или меньше 45, то сбой.

sum(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3) as CScore, 

--Fail?? 


sum(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3)/46 as CPASS 
+0

обертку в другом запросе, то 'выберите случай, когда score_from_subquery> = 46, то 'проход' еще 'не в состоянии' конец case'? –

ответ

1
SELECT 
    CASE 
     WHEN sum(ISNULL(qa.scripting1,0)+ISNULL(qa.conduct1,0)+ISNULL(qa.conduct2,0)+ISNULL(qa.conduct3,0) >= 45 THEN "PASS" 
     WHEN sum(ISNULL(qa.scripting1,0)+ISNULL(qa.conduct1,0)+ISNULL(qa.conduct2,0)+ISNULL(qa.conduct3,0) <= 44 THEN "FAIL" 
    END 
FROM Data ; 
+1

CASE КОГДА сумма (qa.scripting1 + qa.conduct1 + qa.conduct2 + qa.conduct3)> = 45 THEN «PASS» ELSE «FAIL» END - таким образом вы не будете оценивать тот же самый подзапрос дважды – galets

0

Попробуйте это:

Case sum(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3) when > 45 then 'pass' else 'fail' end 
Смежные вопросы