2013-02-07 46 views
4

我有一個查詢需要對其他2列爲真的列進行計數。 當'DealerName'像'%MINI%'和'DealerContact_Y'= 1時,我需要計算'DealerName''mysql'case'具有多個'WHEN'值

但我不確定語法。此查詢產生錯誤

SELECT DealerName, 
     count(DealerShipId) as dealersContacted, 
     CASE WHEN 
     DealerName LIKE "%MINI%", WHEN DealerContact_Y = 1 
     THEN Count(DealerContact_Y) END as Mini_contacted_yes, 
     Campaign, 
     DealerId 
     FROM tblsummaryResults 

是否有辦法在case語句中執行多個WHENS?

回答

4

你會使用DealerName LIKE '%MINI%' AND DealerContact_Y = 1這樣寫:

SELECT DealerName, 
    count(DealerShipId) as dealersContacted, 
    count(CASE 
      WHEN DealerName LIKE '%MINI%' 
       AND DealerContact_Y = 1 
      THEN DealerContact_Y END) as Mini_contacted_yes, 
    Campaign, 
    DealerId 
FROM tblsummaryResults 
+0

非常感謝,這似乎是工作,我會接受的答案系統允許的時候。 – user1882752

+0

@ user1882752歡迎您,我很高興它正在工作。 – Taryn

1

所以,做這樣的計數:

COUNT(
    IF(DealerName LIKE "%MINI%" AND DealerContact_Y = 1, DealerContact_Y, NULL) 
) AS Mini_contacted_yes 
+0

謝謝這也可以! – user1882752