我下面有一组数据,其中每个月都在计算计数。 我必须使用此数据创建报告,但是每个月大约在第5个或第6个工作日获得的计数。直到它始终显示NULL或0。 因此,我想填充以前的值,直到获得数月的计数。
因此,如果下面是我的数据集,那么我希望看到> ='2018-08-01'月份的计数14793417。一旦我们获得了这几个月的数据,它就应该输入正确的计数,而不是先前的计数。
Count yyyymm Month-Date
15339017 201801 2018-01-01
13832952 201802 2018-02-01
14432701 201803 2018-03-01
14259210 201804 2018-04-01
14863942 201805 2018-05-01
14377470 201806 2018-06-01
14793417 201807 2018-07-01
NULL NULL 2018-08-01
NULL NULL 2018-09-01
NULL NULL 2018-10-01
NULL NULL 2018-11-01
NULL NULL 2018-12-01
我尝试了滞后功能,但是我做得不好。
select distinct
[count],
CASE WHEN [count] IS NULL THEN
lag([count]) over(partition by [Month-Date]) order by [Month-Date])
else [count] end,
yyyymm
from #table
group by [Month-Date],yyyymm
有人可以帮我吗?
答案 0 :(得分:0)
不确定您的#table
是什么,但是下面是示例:
WITH ABC
AS
(
SELECT 1 as month, 500 as total
UNION ALL
SELECT 2, 1000
UNION ALL
SELECT 3, NULL
UNION ALL
SELECT 4 , NULL
)
SELECT month,ISNULL(total,previousMonth)
FROM
(
SELECT *, LAG(TOTAL)OVER(ORDER BY month) as previousMonth
FROM ABC
) as A