0
次の構造を持つ2つのテーブルがあります。ネストしたセレクトを使用したMySQLの更新
Accounts (acc_id, name, balance)
GeneralLedger GL (account_id, voucher_id, debit,credit)
総勘定元帳テーブルから借方総額と総与信額を計算して勘定残高勘定を更新します。
あなたは、「作品」が、バランスがNULLでヌル結果に加えること、その後はnullとして開始した場合あなたのクエリ私は、クエリの下にしようとしたが、そのは動作していない、誤りがないが、任意のレコードを更新しません
UPDATE accounts a
INNER JOIN
(
SELECT gl.account_id, SUM(gl.debit) total_debit, SUM(gl.credit) total_credit
FROM general_ledger gl
WHERE gl.voucher_id=1
GROUP BY gl.account_id
) gl ON gl.account_id=a.account_id
SET a.balance = a.balance + (total_credit-total_debit)
WHERE a.acc_id=gl.account_id
どのように動作しませんか?構文エラーが出ますか、または期待した結果が得られませんか? –
サブ・セレクトにリンクがすでに定義されているため、最後のWHERE句は必要ないと考えてください。 –
@ P.Salmon、クエリは0エラーで正常ですが、レコードは更新されません – user3554045