繁体   English   中英

查询以显示所有月份并显示对应月份有数据的值

[英]Query to show all months and show values where there are data for the corresponding months

我有一个query ,它显示了有相应数据的月份。 但是,我想显示一年中的所有月份,并将没有数据的月份显示为零。

有我的 SQL 声明:

SELECT   DATENAME(MONTH, hb_Disputes.OPENED) AS MonthValue, 
COUNT(CASE WHEN REV_CLS = 2 THEN 1 END) AS SmallCommercialIndust, 
COUNT(CASE WHEN REV_CLS <> 2 THEN 1 END) AS Residential
FROM         hb_Disputes
WHERE     (hb_Disputes.ASSGNTO = 'E099255') AND (YEAR(hb_Disputes.OPENED) = YEAR(GETDATE()))
GROUP BY hb_Disputes.OPENED

这是我的 output:

在此处输入图像描述

我还有一个表名MonthName ,它显示了一年中的所有月份,我知道我可能需要使用它来完成我想要实现的目标,但我不知道如何到达那里:

在此处输入图像描述

如果表中有所有月份的数据,但是where子句将其过滤掉,那么最简单的方法是扩展条件聚合:

SELECT DATENAME(MONTH, d.OPENED) AS MonthValue, 
       SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS = 2 THEN 1 ELSE 0 END) AS SmallCommercialIndust, 
       SUM(CASE WHEN d.ASSGNTO = 'E099255' AND d.REV_CLS <> 2 THEN 1 ELSE 0 END) AS Residential
FROM hb_Disputes d
WHERE YEAR(d.OPENED) = YEAR(GETDATE())
GROUP BY DATENAME(MONTH, d.OPENED) 
ORDER BY MIN(d.OPENED);

注意:这并不能解决所有情况下的问题。 它应该只是一种修改查询的简单方法——并且通常会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM