将 "SUMs" 与相似值合并

Combining "SUMs" with a similar value

我有一个提要更新我的数据库,其中包含全天 purchased/returned 的订单。 table 具有名称、值和订单类型。下面的table是当前DB的视图(订单类型不在此图上,但存储在DB中即purchase/return)

我的目标是查询此数据库并return得到以下结果:

购买列将对姓名的所有购买进行求和,return 列将对姓名的所有 return 求和,净列将对所有值进行求和姓名。

这是我提出的以下查询:

SELECT 
(SELECT NAME, SUM(ORDER)
FROM Orders
WHERE OrderType = "Purchase"
) AS PURCHASE,

(SELECT NAME, SUM(ORDER)
FROM Orders
WHERE OrderType = "Return"
) AS RETURN,

(SELECT NAME, SUM(ORDER)
FROM Orders
) AS NET

结果如下:

计算是正确的,但我不知道如何组合名称并在它们自己的列中显示计算。非常感谢任何帮助,谢谢!!

您可以使用 CASE WHEN:

SELECT NAME,
  SUM(CASE WHEN OrderType = 'Purchase' THEN `ORDER` ELSE 0 END) AS PURCHASE,
  SUM(CASE WHEN OrderType = 'Return' THEN `ORDER` ELSE 0 END) AS `RETURN`,       
  SUM(`Order`) AS Net
FROM Orders
GROUP BY NAME