2012-08-31 30 views
4

我想設置列日期的日期字段讓我們說'10/11/2012'在表1中所有金額表2的總和相關的id(通過fk_id )= 0。這裏就是我的意思:SQL更新與WHERE子句中的聚合

FROM:

表1

id date 
    1  10/11/2011 
    2  
    3  10/12/2011 

表2

fk_id amount 
    1  200 
    2  0 
    2  0 
    3  100 

TO:

表1

id date 
    1  10/11/2011 
    2  10/11/2012 
    3  10/12/2011 

表2

fk_id amount 
    1  200 
    2  0 
    2  0 
    3  100 

這是我目前:

update table1 
set date = '10/11/2012 
FROM table1 inner join table 2 on table1.id = table2.fk_id 
HAVING sum(table2.amount) = 0 

有人可以幫助我在這裏?

+0

爲什麼'2:10/11/table1中 –

+0

@Thecrocodilehunter更新後2012' - 因爲amount'的'FOT值總和'2' '表2'爲零 – Lamak

回答

5
UPDATE table1 
SET date = '10/11/2012' 
FROM table1 
WHERE id IN (SELECT FK_ID FROM table2 GROUP BY FK_ID HAVING SUM(Amount)=0) 
+0

謝謝,那就像一個魅力工作! – user974047

0

這應該工作:

UPDATE T1 
SET [date] = '20121011' 
FROM table1 T1 
INNER JOIN (SELECT fk_id, SUM(amount) Amount 
      FROM table2 
      GROUP BY fk_id 
      HAVING SUM(amount) = 0) T2 
ON T1.id = T2.fk_id