sql - 如何将这四个请求合二为一?
问题描述
如何将这四个请求合二为一?
Select COUNT(Table1.statusID) as result1 from Table1 where Table1.emplDesignerID = 1135 and Table1.cancelled = 0
Select COUNT(Table1.statusID) as result2 from Table1 where Table1.emplDesignerID = 26 and Table1.cancelled = 0
Select COUNT(Table1.statusID) as result3 from Table1 where Table1.emplDesignerID = 1086 and Table1.cancelled = 0
Select COUNT(Table1.statusID) as result4 from Table1 where Table1.emplDesignerID = 1089 and Table1.cancelled = 0
我正在使用 MS SQL Server。
解决方案
SUM
并且CASE
可以在这里有用地组合:
Select
SUM(CASE WHEN Table1.emplDesignerID = 1135 THEN 1 ELSE 0 END) as result1,
SUM(CASE WHEN Table1.emplDesignerID = 26 THEN 1 ELSE 0 END) as result2,
SUM(CASE WHEN Table1.emplDesignerID = 1086 THEN 1 ELSE 0 END) as result3,
SUM(CASE WHEN Table1.emplDesignerID = 1089 THEN 1 ELSE 0 END) as result4
from Table1
where Table1.cancelled = 0
and Table1.emplDesignerID in (1135,26,1086,1089)
根据使用情况,您可能会或可能不会觉得子句IN
中需要过滤器。WHERE
还有其他可能的转换(emplDesignerID
在SELECT
子句中并GROUP
在其上)可能使其更灵活。
推荐阅读
- angular - 如何解决 Angular 7 上的 jest 问题?
- wordpress - 当数据库 URL 没有“.”时如何将 Jetpack 连接到 Wordpress.org (即如何禁用 dev_mode_"
- java - 如果输入无效,当使用递归要求再次输入数据值时,如何解决此问题,stringbuilder 变量恢复为第一个输入?
- javascript - 文本扩展和背景颜色的动画
- java - JavaFX FXMLLoader:从 jar 文件加载时未设置位置
- python - 如何使用 RSA?
- wordpress - 在 Dockerized Lemp 上部署 WordPress 时出现 502 Bad Gateway 错误?
- asp.net-mvc - 使用 api 将图像保存到数据库中
- hadoop - Hadoop MapReduce:具有 TextInputFormat 的映射器数量
- javascript - 如何克隆一个包含没有值的表单的元素?