我需要生成报告,该报告将显示 SCD 表每天的新/更改行数。
下面是创建表的 SQL:
create table #scd(
code nvarchar not null
, startdate date not null
, enddate date
);
alter table #scd add constraint pk_scd primary key (code, startdate);
insert into #scd values
('A', '2012-06-01', '2012-06-02')
,('B', '2012-06-01', '2012-06-02')
,('A', '2012-06-02', '2012-06-03')
,('B', '2012-06-02', '2012-06-04')
,('A', '2012-06-03', '2012-06-04')
,('A', '2012-06-04', null)
,('B', '2012-06-04', null)
,('C', '2012-06-04', null)
select * from #scd
结果如下所示:
code startdate enddate
A 2012-06-01 2012-06-02
B 2012-06-01 2012-06-02
A 2012-06-02 2012-06-03
B 2012-06-02 2012-06-04
A 2012-06-03 2012-06-04
A 2012-06-04 NULL
B 2012-06-04 NULL
C 2012-06-04 NULL
现在,我需要制作这样的东西:
date new changed
2012-06-01 2 0
2012-06-02 0 2
2012-06-03 0 1
2012-06-04 1 2
任何帮助深表感谢。