2017-01-21 7 views
2

TablesUPDATEテーブルは、JOINと上記のようにwhere句

は、2つのテーブルを得ました。私は 'leaverecord.Consumed'を 'approved.Consumed'から更新したいと思います。どこにleaverecord.name = approved.nameとleaverecord.leavetype = approved.leavetypeがありますか? サブクエリで消費計算グループ機能

UPDATE leaverecord r INNER JOIN approved a 
ON r.name = a.name 
SET r.Consumed = SUM(DATEDIFF(a.todate,a.fromdate)) 
WHERE r.leavetype = a.leavetype AND 
r.name = a.name 
+0

スクリーンショットは、あなたには、いくつかは、TABLEとINSERT文を作成しますすることができ、あまり役に立ちませんか?あなたはより速く助けを受けるでしょう – fafl

答えて

1

の「無効使用の誤りやleaverecordとINNER JOINそれを取得することにより、クエリの下にしようとした後、以下のようなUPDATEを行います。いいえWHERE節が必要です。

これを試してみてください:

update leaverecord r 
inner join (
    select name, leavetype, sum(datediff(todate,fromdate)) consumed 
    from approved 
    group by name, leavetype 
) a on r.name = a.name 
and r.leavetype = a.leavetype 
set r.consumed = a.consumed; 
+0

これは、承認された後に4行目の小さな修正で働いています –

関連する問題