0
私は出荷テーブルと出荷明細テーブルを持っています。出荷は一般的に複数のカートンを出荷します。出荷表の数を選択し、明細表から数量を合計しようとしています。しかし、私の値は結合されたテーブルから選択されています。クエリは結合テーブルからカウントを選択しています
ex。カウント= 7、カウントは私の出荷テーブルから4でなければなりません
SELECT ss.tenant_id,
ss.order_id,
COUNT(ss.shipment_number),
SUM(sd.qty_shipped)
FROM shipment ss
LEFT JOIN detail sd
ON ss.id = sd.shipment_id
GROUP BY
ss.order_id,
ss.tenant_id;
出力 - >
tenant_id | order_id | count | sum
-----------+----------+-------+------
1 | 2573 | 7 | 1350
データセット - >
shipment
id | shipment_number | shipment_status | tracking_number | shipping_cost
------+-----------------+----------------+----------------+---------------
8332 | 1000048 | confirmed | 123 | 10.00
8333 | 1000049 | confirmed | 123 | 10.00
8334 | 1000050 | confirmed | 123 | 10.00
8335 | 1000051 | confirmed | 123 | 10.00
detail
id | carton_number | qty_shipped | order_id | shipment_id
-------+---------------+-------------+----------+------------
14654 | 1 | 200 | 2573 | 8332
14655 | 2 | 200 | 2573 | 8332
14656 | 1 | 200 | 2573 | 8333
14657 | 1 | 200 | 2573 | 8334
14658 | 2 | 200 | 2573 | 8334
14659 | 1 | 150 | 2573 | 8335
14660 | 2 | 200 | 2573 | 8335
どの値が間違っていて、どのような結果が期待されていますか。おそらく 'COUNT(distinct ss.order_id)'が必要でしょうか? – xQbert
どのような値が「倍増」され、サンプルデータで期待される結果は何ですか?問題は1-Mの関係になる結合で、1レコードはMのすべてのレコードの倍数になります。したがって、1を数えれば、関連レコードはMに、または7つのオーダーは1が本当に存在しました。結合の前に集約するか、または個数にdistinctを使用します。 – xQbert
カウントと合計はどちらも私には大丈夫です!あなたの出力で。 –