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,您將只獲得1 * M中的相關記錄,或僅當1真的存在。在加入之前聚合或在計數上使用不同的值。 – xQbert
計數和總和,都看我OKAY!在你的輸出中。 –