2012-02-23 50 views
0

我想下面的查詢和MySQL給了我這個錯誤:無效使用組功能的多個嵌套如果statment在MySQL查詢

SELECT C.`some_name`, 
     SUM(IF(A.`med_type` = 1, SUM(A.`med_qty`), 0)) AS total, 
     SUM(IF(A.`is_rejected` = 4, 1 , 0)) AS approved, 
     SUM(IF(A.`is_rejected` = 2, 1 , 0)) AS qeue, 
     SUM(IF(A.`is_rejected` = 3, 1 , 0)) AS rejected, 
     SUM(IF(A.`is_rejected` = 1, 1 , 0)) AS fresh 
    FROM `ne_media` A 
    INNER JOIN `ne_member` B ON A.`mem_id` = B.`mem_id` 
    INNER JOIN `ne_some` C ON B.`some_id` = C.`some_id` 
    GROUP BY C.`some_id`; 

我想med_qty只是如果med_type = 1總結。

我該怎麼做?

回答

1

用途:

SUM(CASE WHEN (A.`med_type` = 1) THEN A.`med_qty` ELSE 0 END)) AS total, 

或:

SUM(IF(A.`med_type` = 1, A.`med_qty`, 0)) AS total, 

你不能做骨料骨料像你想在原來的。

+0

坦克它的工作,但實際上我需要med_qty的內容的總和不算他們這是他們的返回計數。 ! – mehdi 2012-02-24 07:45:15

+0

如果您將其他表達式中的1或0相加,那麼它會對它們進行計數,但如果在med_type爲1時對med_qty進行求和(如圖所示),則應該得到您要求的結果。 – 2012-02-24 14:47:34