0
表Bを基にして表Aの列の集計を実行しようとしています。結合条件が満たされた値を取得します。ただし、他の行の場合、値はNULLです。我々は次のスクリプト結合条件が満たされていないために合計が行われなかったすべての行が返される
を使用しているテーブルBからテーブルAに数量、金額の合計を計算する表A
SKU | Quantity | Amount
A |
B |
C |
D |
E |
F |
表B
Order | SKU | Quantity | Amount
1 | A | 5 | 50
2 | B | 50 | 2000
3 | C | 100 | 5000
4 | D | 50 | 60
5 | A | 20 | 200
6 | A | 60 | 600
7 | B | 10 | 400
UPDATE Table A x
SET Quantity = y.qty
from (
SELECT SKU, SUM(quantity) AS qty
FROM Table B
GROUP BY SKU
) AS y
WHERE x.SKU=y.SKU;
これを行うには、我々は
表を取得している私たちは、私たちが合体使用してみました0とEとFを更新したいと思い
SKU | Quantity | Amount
A | 85 |
B | 60 |
C | 100 |
D | 50 |
E | |
F | |
(、SUM(数量)を '0')が、 SKU E &FのテーブルAとテーブルBの間に結合がないので、値が0に更新されないことに気付きました。
これは可能ですか?
使用 'COALESCE:
その他 - - おそらく、より高速な方法外側のあなたの元のクエリから派生テーブルに参加を使用することです(SUM(列)、0) '? – Marth
これを実行しようとしましたが、結合条件が満たされているにもかかわらずゼロが戻されますが、残りの行ではNULLが戻されます。 –
テーブル定義、サンプルデータ、クエリを質問に追加できますか? – Marth