0

以下のような2つのテーブルがあります

表1

Bank_Name
Bank_ACNO
Bank_Branch
Bank_Balance

表 - 2

Emp_ID
Amount_Paid

表 1 には、銀行の ACNO ごとに一意のレコードが含まれています。ただし、表 2 には複数のレコードが含まれています。ここで、Table-1.Bank_ACNO=Table-2.Emp_ID の Sum(Table-1.Bank_Balance + Amount_Paid) を使用して Table - 1 (Bank_Balance) を更新します。

以下のクエリを試しましたが、うまくいきませんでした。

UPDATE  Bank_Master
SET     Bank_Balance = ( Bank_Master.Bank_Balance
                     + Order_Archieve_Temp.Amount_Paid ) 
OUTER JOIN Order_Archieve_Temp 
ON Bank_Balance.Bank_ACNO=Order_Archieve_Temp.Emp_ID)
4

3 に答える 3

0

ここにSQLFiddelのデモがあります

以下は、試すことができる更新クエリです。

Update T1
set T1.Bank_Balance = t1.Bank_Balance + t2.Amount_Paid
FROM TABLE1 T1,
     (select Emp_ID,sum(Amount_Paid) as Amount_Paid
        from Table2 
       group by Emp_ID ) as T2
WHERE T1.Bank_ACNO = T2.Emp_ID
于 2013-08-28T04:54:54.310 に答える
0

このクエリを試してください:

BEGIN TRAN;

UPDATE  t1
SET Bank_Balance = t1.Bank_Balance + ISNULL(x.Total_Amount_Paid,0)
-- or 
-- SET  Bank_Balance = ISNULL(t1.Bank_Balance,0) + ISNULL(x.Total_Amount_Paid,0)
-- or 
-- SET  Bank_Balance = NULLIF(ISNULL(t1.Bank_Balance,0) + ISNULL(x.Total_Amount_Paid,0), 0)
FROM    dbo.Table1 t1
OUTER APPLY
(
    SELECT  SUM(t2.Amount_Paid) AS Total_Amount_Paid
    FROM    dbo.Table2 t2
    WHERE   t1.Bank_ACNO = t2.Emp_ID    
) x

ROLLBACK
-- COMMIT
于 2013-08-28T04:28:24.360 に答える