0
我想統計任務1至3的訂單總數。 然後,如果entry1已經計數,我需要檢查狀態是否正在進行(所有狀態都未完成) 。 我需要在這裏使用嵌套CASE,我不想將它包含在我的WHERE子句 中,因爲我稍後會加入更多表。MySQL查詢中的嵌套CASE
這是我的示例表:
ID + orderid + task + status
1 | 1 | 1 | Completed
2 | 2 | 1 | Saved
3 | 3 | 1 | Saved
4 | 1 | 2 | Completed
5 | 1 | 3 | Completed
正如你可以在已ENTRY1總的在建工程爲2,完成任務現場看到的是1 當我執行我的查詢我得到的結果2當我使用entry1和狀態不保存,但我也得到了刪除NOT時的結果2。但是當我使用('COMPLETED')時,我得到了正確的結果。那麼在我的代碼中('SAVED')有什麼問題。我希望我沒有在我的問題中輸入任何內容。
這是我的示例查詢:
SELECT
COUNT(
CASE task
WHEN 1 THEN task ELSE NULL
END
AND
CASE `status`
WHEN NOT UPPER('SAVED') THEN `status` ELSE NULL
END
) e1_inprogress
FROM tableName;
現在我只用唯一的任務1,但在我真正的代碼,我也需要包括所有任務和COUNT所有狀態。 我認爲這很簡單,也許我錯過了什麼,然後請糾正我。 如果您有其他方式,請讓我們知道。
現在我得到它..問題是我的關於不等於我應該用思維< >或!=而不是NOT或<=>。隨着你的解釋,我會認爲這是我接受的答案,而你是代碼我會用它代替我的,以縮短我的查詢。再次感謝(我應該先研究基本) – ace 2011-02-08 04:44:27