gpt4 book ai didi

sql - 根据第二列值对列中的不同行求和

转载 作者:行者123 更新时间:2023-12-04 21:05:38 26 4
gpt4 key购买 nike

我有一个订单表(简化)

OrderId,
SalesPersonId,
SaleAmount,
CurrencyId,
...

我正在尝试在此表上创建一个报告,我希望得到类似这样的结果:

SalesPersonId   TotalCAD    TotalUSD
1 12,345.00 6,789.00
2 7,890.00 1,234.00

我不希望进行自连接(也许我过早地进行了优化,但这似乎效率低下)IE:

SELECT SalesPersonId, SUM(OrdersCAD.SaleAmount), SUM(OrderUSD.SaleAmount)
FROM Orders
LEFT JOIN Orders AS OrdersCAD ON Orders.OrderID AND Orders.CurrencyID = 1
LEFT JOIN Orders AS OrdersUSD ON Orders.OrderID AND Orders.CurrencyID = 2

但我想不出另一种方法来做到这一点,有什么想法吗?

最佳答案

使用 CASE block :

SELECT
SalesPersonId,
SUM(
CASE CurrencyID
WHEN 1 THEN SaleAmount
ELSE 0
END
) AS TotalCAD,
SUM(
CASE CurrencyID
WHEN 2 THEN SaleAmount
ELSE 0
END
) AS TotalUSD
FROM Orders
GROUP BY SalesPersonId

关于sql - 根据第二列值对列中的不同行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com