2017-02-15 59 views
1

有兩個Tables ATable BT-SQL更新問題

表A

表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 

例如,在9-1-2016表A預算是以表B具有相同日期分爲3項。

+0

基於什麼邏輯.....?你的號碼沒有任何意義。 – Siyual

+0

預算應該從表A到表B的相同日期傳播。 –

+0

因此表格A中的日期(9-1-2016)的預算值爲21. 我希望這個值在表B中平均分配該日期有三行。 現在有道理嗎?我很高興解釋更多。 –

回答

2

這應該做的工作:

注意我用了一個LEFT JOIN與表A,只是把不​​存在的預算照顧。

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; 
+0

謝謝。這很棒。 您能否提供更新聲明 –

+0

Wohoo。非常感謝喲 –