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