MySQL多表联接不正确的求和
我正在尝试将三个表连接在一起并求和(MySQL),按“跟踪编号”和“订单ID”分组:MySQL多表联接不正确的求和,mysql,sql,Mysql,Sql,我正在尝试将三个表连接在一起并求和(MySQL),按“跟踪编号”和“订单ID”分组: invoice_data_dhl master_track_nums payments 问题:当一个订单ID有多个付款行时,它将DHL\u成本总计乘以订单ID的付款表中的结果数 SELECT invoice_data_dhl.Waybill_Number, sum(invoice_data_dhl.AWB_Original_Amount) AS DHL_COST, master_track_nums.ord
invoice_data_dhl
master_track_nums
payments
问题:当一个订单ID有多个付款
行时,它将DHL\u成本
总计乘以订单ID的付款
表中的结果数
SELECT
invoice_data_dhl.Waybill_Number,
sum(invoice_data_dhl.AWB_Original_Amount) AS DHL_COST,
master_track_nums.order_ID,
sum(payments.revenue) AS REVENUE
FROM invoice_data_dhl
LEFT JOIN master_track_nums
ON invoice_data_dhl.Waybill_Number = master_track_nums.track
LEFT JOIN payments
ON master_track_nums.order_ID = payments.order_ID
GROUP BY invoice_data_dhl.Waybill_Number
可以这样写吗?这样我就可以通过一个输出如下结果的查询获得结果
Waybill_Number DHL_COST order_ID REVENUE
7022193792 182.52 110632 234
4536137201 3311.96 107637 4074
3927382187 248.95 110384 636
7812896712 74.85 106998 247
提前谢谢你的帮助 未测试:但类似以下内容:更新:未删除内联查询中的收入总和
SELECT A.waybill_number, A.DHL_COST, A.Order_ID, Sum(payments.Revenue)
FROM
(SELECT invoice_data_dhl.Waybill_Number,
sum(invoice_data_dhl.AWB_Original_Amount) AS DHL_COST,
master_track_nums.order_ID
FROM invoice_data_dhl
LEFT JOIN master_track_nums
ON invoice_data_dhl.Waybill_Number = master_track_nums.track
GROUP BY master_track_nums.Order_ID, invoice_data_dhl.Waybill_Number) A
LEFT JOIN payments
ON A.order_ID = payments.order_ID
GROUP BY A.waybill_number, A.DHL_COST, A.Order_ID
“可以这样写吗?这样我就可以通过一个输出如下结果的查询获得结果?”。在执行联接之前,必须聚合结果。因此,一个内联查询将返回所需的DHL_成本,然后添加到付款中,导致成本翻倍。谢谢!我只需在末尾添加
groupby
语句:“groupby A.Waybill_Number”(并匹配第一行的大写字母)。