如何将两条dgvall调用的SQL查询语句合并为一条?
合并两条SQL查询的解决方案
嘿,这事儿很简单!你的两条查询分别是获取所有不重复的部门,以及统计每个部门中voterstatus = '1'的投票数。我们可以把这两个需求合并到一条SQL里,同时保证所有部门都会被展示(哪怕该部门没有符合条件的投票,也会显示0)。
合并后的SQL语句
SELECT department, COUNT(CASE WHEN voterstatus = '1' THEN 1 END) AS 'votes' FROM tblvoter GROUP BY department
为什么这么写?
GROUP BY department确保每个部门只返回一行,完全满足第一条查询“获取所有不重复部门”的需求。COUNT(CASE WHEN voterstatus = '1' THEN 1 END)是条件计数:只有当voterstatus等于1时,才会计入统计;不符合条件的行返回NULL,而COUNT函数会自动忽略NULL值,这样就得到了每个部门的有效投票数。
如果你的需求是只显示有有效投票的部门,那也可以简化成下面这样(但这样会过滤掉没有投票的部门,和第一条查询的范围不一致,所以更推荐上面的写法):
SELECT department, COUNT(*) AS 'votes' FROM tblvoter WHERE voterstatus = '1' GROUP BY department
内容的提问来源于stack exchange,提问作者FLASHHHHH
相关产品推荐
相关产品推荐

