【发布时间】:2015-08-12 11:07:59
【问题描述】:
表格 CMC
ID CMD USERID STATUS
1 94 4 1
2 102 24 1
3 36 32 1
4 44 40 1
5 82 2 1
6 66 27 1
7 94 56 1
8 102 2 1
表CCC
ID COURSEID CMD
1 2 94
2 16 102
3 8 82
4 5 94
5 4 66
6 8 36
7 2 56
8 19 44-
表格命令
ID COURSEID
44 5
66 3
102 16
82 5
94 8
56 4
66 2
36 19
我正在尝试创建一个带有状态计算的 sql 查询:
COUNT(CMC.USERID) COURSED COMPLETED INPROCESS NOTSTARTED
已完成:如果该特定 COURSEID 的 COUNT(CMC) == COUNT(CCC)
INPROCESS : 如果 COUNT(CMC) >0,但不等于 COUNT(CCC)
未开始:如果 COUNT(CMC) =0
任何人都可以通过以下查询建议我:
SELECT count(cmc.userid),
(SELECT count(ccc.id) FROM ccc HAVING count(cmc.userid) = count(ccc.id) ) AS "completed"
(SELECT count(ccc.id) FROM ccc HAVING count(cmc.userid) >0 AND count(ccc.id) !== count(cmc.userid) ) AS "Inprocess"
(SELECT count(ccc.id) FROM ccc HAVING count(cmc.userid) = 0 ) AS "Notstarted"
FROM
cmc
WHERE status = 1
【问题讨论】:
-
请显示您想要的结果。你的规则没有意义。例如,只有一张表有
courseid。表之间是什么关系? -
这两张表之间还有一张表,我现在更新一下
-
@Gordon Linoff - 我已经更新了表格。
-
谁能建议我使用 sql 查询。
标签: sql