有两个Tables A
和Table B
表A
Date Budget
9-1-2016 21
9-2-2016 10
表B
Date Amount Budget
9-1-2016 12
9-1-2016 15
9-1-2016 17
9-2-2016 15
9-2-2016 10
9-3-2016 12
我想将表A 中的每日预算划分为相应的项目 表B 如下:
Date Amount Budget
9-1-2016 12 7
9-1-2016 15 7
9-1-2016 17 7
9-2-2016 15 5
9-2-2016 10 5
9-3-2016 12 0
例如,表A 中9-1-2016
的预算分为表B 中具有相同日期的3个项目。
答案 0 :(得分:2)
这应该做的工作:
注意我在表A中使用了LEFT JOIN,只是为了处理不存在的预算。
update tableB
set Budget = coalesce(a.Budget,0) / c.numB
from tableB b
left join tableA a on a.Date = b.Date
inner join (select Date, count(*) as numB
from tableB
group by date) c on c.Date = b.Date;