我有两行属于同一采购订单。 正如您在下面看到的那样,佣金和sales_value未合并为一行。我们从外部收到的这些数据,无法更改。
我已经尝试了大约一周时间来获取正确的查询,但不幸的是,我的预期结果却不然
+--------+-------------+------------+-------+ | PO | sales_value | commission | total | +--------+-------------+------------+-------+ | XXXXXX | | -1.60 | -1.60 | | XXXXXX | 28.89 | | 28.89 | +--------+-------------+------------+-------+
我尝试创建查询以获取以下结果:
+--------+-------------+------------+-------+ | PO | sales_value | commission | total | +--------+-------------+------------+-------+ | XXXXXX | 28.89 | -1.60 | 27.29 | +--------+-------------+------------+-------+
应将佣金移至第二行的空佣金字段,并且应将总计金额加在一起。这样我们就可以正确使用信息。
我尝试了多种可能性以及MySQL的join函数。 不幸的是,我没有显示测试结果,因为我没有保存测试查询。
答案 0 :(得分:2)
您需要将GROUP BY
与SUM()
聚合一起使用,以便将特定PO的所有行合并为一个:
SELECT
PO,
SUM(sales_value) AS sales_value,
SUM(commission) AS commission,
SUM(sales_value) + SUM(commission) AS total
FROM your_table_name -- <- use your table name here
GROUP BY PO
答案 1 :(得分:0)
select po,
sum(ifnull(sales_value,0)) as sales_value,
sum(ifnull(commission,0)) as commission,
sum(ifnull(total,0)) as total
from
#yourtable
group by po