没有数据可以说我有一个销售报告:获取数据PR月份一行即使有那个月
Salesman | Sales | Month | yr |
A 5 1 2016
A 12 1 2017
A 3 1 2017
A 25 5 2017
B 20 4 2017
B 49 6 2017
如果我想看看总销售额PR推销员,我会做这样的事情:
SELECT salesman, sum(SALES), MONTH from SALESTABLE GROUP BY Salesman, Mnth where year = 2017
并获得:
Salesman | Sales | Mnth | yr |
A 15 1 2017
A 25 5 2017
B 20 4 2017
B 49 6 2017
但是我想以下几点:
Salesman | Sales | Mnth | yr |
A 15 1 2017
A 0 2 2017
A 0 3 2017
...
A 25 5 2017
...
我已经试过如下:
DECLARE @MonthTable TABLE
(
Monthnumber int
)
DECLARE @cnt int = 0
while @cnt < 12
BEGIN
SET @cnt = @cnt+1
Insert into @MonthTable (monthnumber) values (@cnt)
END
SELECT salesman,
sum(SALES),
monthnumber
FROM SALESTABLE
RIGHT JOIN @MonthTable ON monthnumber = mnth
GROUP BY Salesman, monthnumber
然而这给出了 “推销员” 一NULL
,符合市场预期。
一种方法是创建一个[日历表](http://www.sqlservercentral.com/blogs/dwainsql/2014/03/30/calendar-tables-在-T-SQL /)。该表格将为您提供一些内容。 –