私は2つのテーブルの請求書と支払いを持っています。請求書には多くの支払いがあり、すべての請求書行について、total_payments_amount
というフィールドを更新して、1つのSQL照会でそれぞれの関連するすべての支払いの合計を計算します。だからここに私はSQL INNER JOINを使用した一括更新フィールド
UPDATE invoices
SET total_payments_amount = pays.total_amount
FROM invoices inv
INNER JOIN (
SELECT invoice_id, SUM(amount) as total_amount
FROM payments
WHERE invoice_id IS NOT NULL
GROUP BY invoice_id
) pays
ON inv.id = pays.invoice_id
が、このクエリを実行した後、私はすべてのレコードが同じ値が含まれていることを確認してみましたものです。ここに何が問題なの?
MySQLやSQL Serverの.. CTEで試してみてください? –
@vkp postgresql – Azzurrio