我有表JobInfo
,其中包含JobId,ImageId,StatusId
需要的结果:
我需要知道处理了多少图像。对于已处理的图片,StatusId
的值为7
以下查询仅显示statusId=7
退出的那些jobIds,但我需要所有jobIds。
如果特定jobid不存在statusid,则count应为0,对应于该jobid。
SQL QUERY
SELECT jobid,COUNT(imageid) AS 'ProcessedCount'
FROM JobInfo WITH ( NOLOCK )
WHERE statusid = 7
GROUP BY JobId ORDER BY JobId
如何实现这一结果?
由于
答案 0 :(得分:1)
删除where子句...并按如下所示执行....使用sum和case语句,您可以获得预期的结果......
SELECT jobid,
COUNT(imageid) As TotalCount,
Sum(Case when Statusid=7 then 1 else 0 end) AS 'ProcessedCount'
FROM JobInfo WITH ( NOLOCK )
-- WHERE statusid = 7
GROUP BY JobId ORDER BY JobId