0
私は複数の売り上げリストテーブルを持っています各テーブルのトッププロダクト(より高い数量)を選択し、それぞれの売り上げリストテーブルから、すべてのテーブルのトッププロダクトを選択します。 これは私がこれまでにやったことです:複数のテーブルからトッププロダクトを選択重複プロダクトを結合して数量を合計
SELECT code_p, SUM(total)
FROM (
SELECT code_p as code_p, SUM(qty_p) as total from table1_sells_list d
INNER JOIN table1 p ON d.code_t1 = p.code_t1
WHERE valid_t3 = true
GROUP BY code_p, qty_p
-----------------------------------------------------------------------
UNION ALL
SELECT code_p, SUM(qty_p) as total from table2_sells_list a
INNER JOIN table2 c ON a.code_t2 = c.code_t2
WHERE valider_t3 = true
GROUP BY code_p, qty_p
-----------------------------------------------------------------------
UNION ALL
SELECT code_p, SUM(qty_p) as total from table2_sells_list e
INNER JOIN table3 f ON e.code_t3 = f.code_t3
WHERE valider_t3 = true
GROUP BY code_p, qty_p
) a
GROUP BY code_p, total
ORDER BY code_p, total DESC
結果がこれです:あなたが同じ製品を持つ2つの列がある見ることができるように
、私は何をしたいが結合することですこのような重複行とSUM合計:
*テーブル間の売上*を見たくないですか?また、サンプルデータは、あなたがしていることを明確にするのに役立ちます。 –
最後の 'GROUP BY code_p'から' total'を削除するだけです。 – klin
@klinこれはうまくいきましたが、クエリの先頭にあるフィールド名を 'totat'以外のものに変更する必要がありました。そうしないと、GROUP BY句にエラーが表示されます。 ありがとう – HamzaGeeK