我想创建一个包含3列的视图:Item,Date,Qty
这些视图从2个表中获取数据:
表格A:包含所有3列
Item Date Qty
A 2013-12-20 1
A 2013-12-27 2
B 2013-12-20 3
B 2013-12-27 4
表B:包含开始日期和结束日期
StartDate EndDate
2013-12-20 2014-12-26
开始日期和结束日期之间的每个段的时间间隔是一周。
当特定周内表A中没有行时,我需要在视图中插入行 结果应如下所示:
Item Date Qty
A 2013-12-20 1 <-- Start Day
A 2013-12-27 2
A 2014-1-3 0 <--mark qty as 0 when there is no record in Table A
A 2014-1-10 0 <--mark qty as 0 when there is no record in Table A
. <--same logic til the end date
.
A 2014-12-26 0 <--End Date
B 2013-12-20 3
B 2013-12-27 4
B 2014-1-3 0 <--mark qty as 0 when there is no record in Table A
B 2014-1-10 0 <--mark qty as 0 when there is no record in Table A
.
.
B 2014-12-26 0 <--End Date
答案 0 :(得分:0)
你需要这样的东西:
select
b.StartDate,
a.Item,
isnull(sum(a.Qty),0) as Qty
from
TableB b left join
TableA a on a.Date >= b.StartDate and a.Date <= b.EndDate
group by a.Item, b.StartDate
根据使用的RDBMS,您可能需要稍微更改这些部分。
a.Date >= b.StartDate and a.Date <= b.EndDate
isnull(sum(a.Qty),0)