2012-05-16 19 views
0

好吧,我已經看了一些關於更新與組的更新問題,並發現SQL不做,但我無法弄清楚如何執行此特定查詢的更新。帶分組的SQL更新

我有一個交易負載的現金賬戶,他們匹配的銀行對賬單,但問題是銀行對賬單是一個彙總值,所以我需要按特定方式交易的金額和匹配對這些總結的價值。一旦出現正面匹配,我就需要更新現金簿中該組中那些行中的每一行以進行協調。

是我迄今所做的是要得到正確的分組,然後做一個內部連接到銀行statment帶回所有的匹配,但顯然不知道如何更新這些行的值....

任何人有任何想法?

感謝

+0

你正在使用哪個數據庫引擎? 編輯:ups,無法幫助;) – Sebas

+0

對不起,其MS SQL 2008 R2 – user744284

+2

如果您提供一些表定義和示例數據,則更有可能得到答案。它不一定是完整的東西,事實上,如果您發佈一些高度集中的縮減代碼,它會更好。另外,如果您告訴我們數據庫的哪種風格(包括版本),而不是所有的SQL解決方案適合每個數據庫,它都會很有用。 – APC

回答

0

可以存儲在臨時表中的結果(CREATE TEMPORARY TABLE在MySQL),然後用它來過濾您的更新。

SELECT id, name, firstname INTO #tmp FROM stuff; 
UPDATE other SET count='new value' WHERE id IN (SELECT id FROM #tmp); 

的語法錯誤,也許因爲我不使用MSSQL

0

如果我理解正確的話,你可以決定用戶使用select查詢來更新,然後就更新這些。我認爲以下查詢可以做你想做的事情:

with toupdate as (select userid 
        from (select userid, sum(value) as sumvalue 
         from cashbook cb 
         group by userid 
         ) join 
         bankstatement bs 
         on cb.userid = bs.userid 
        where cb.sumvalue = bs.value 
       ) 
update cashbook 
    set reconciled = 1 
from toupdate 
where cashbook.userid = toupdaqte.userid