2012-06-15 16 views
2

我想使用CaseWhenAND條件,它不正確地計算總和。案件何時與AND?

例如:

SELECT DATE(`SubmitDate`), 
    SUM(CASE status WHEN 'New' AND `Type` = 'consumer' THEN 1 ELSE 0 END) as new_consumer, 
    SUM(CASE status WHEN 'New' AND `Type` = 'business' THEN 1 ELSE 0 END) as new_business 
FROM report 
WHERE `source` = 'net' 
group by DATE(`SubmitDate`) Order by `SubmitDate` DESC 
+1

它做得不好 – 2012-06-15 12:45:19

回答

6

您需要使用CASE WHEN [Condition] THEN...,而不是一個簡單的例子表達:

SELECT DATE(`SubmitDate`), 
    SUM(CASE WHEN status = 'New' AND `Type` = 'consumer' THEN 1 ELSE 0 END) as new_consumer, 
    SUM(CASE WHEN status = 'New' AND `Type` = 'business' THEN 1 ELSE 0 END) as new_business 
FROM report 
WHERE `source` = 'net' 
group by DATE(`SubmitDate`) Order by `SubmitDate` DESC 
3

你應該寫

CASE WHEN status='New' AND `Type` = 'consumer' THEN 1 ELSE 0 END 

檢查的CASE WHEN

語法