添加带有四分之一的行-填充间隙



如何在两个季度之间添加缺失的季度?我有一张2000年以来所有季度的日历表。还有另一张有ID和四分之一的桌子。dbo.calendars示例:2000012000020000320000400101,。。。。

我想填补id P206M02117的空白。id P206M02118是正确的,因为四分之一之间没有间隙。

My wrong output
id           qtr
P206M02117  200601
P206M02117  200604
P206M02118  200604
P206M02118  200701
P206M02118  200702
Output I want
id           qtr
P206M02117  200601
P206M02117  200602
P206M02117  200603
P206M02117  200604
P206M02118  200701
P206M02118  200702

提前谢谢。

[编辑以帮助解决修改后的问题]

当不存在四分之一的行时,id是如何填充的尚不清楚;下面的查询假设在这些情况下它填充了CCD_ 2。

你可以做:

select x.id, c.qtr
from calendars c
left join (
select id, min(qtr) as minq, max(qtr) as maxq from t group by id
) x on c.qtr between x.minq and x.maxq
where x.id is not null

结果:

id           qtr    
------------ ------ 
PM206M02117  200601 
PM206M02117  200602 
PM206M02117  200603 
PM206M02117  200604 
PM206M02118  200604 
PM206M02118  200701 
PM206M02118  200702 

请参阅db<gt;不停摆弄

最新更新