【问题标题】:Calc Order Sum from Orderlines从订单行计算订单总和
【发布时间】:2026-01-09 06:15:01
【问题描述】:
您好,我正在尝试计算订单的总和。
我收到了一个带有 ID 的订单,以及一些订单行。
Order
ID OrderDate CustomerName
OrderLine
OrderID ProductId Amount Price
我想做一个选择语句,我得到以下输出。
ID、OrderDate、CustomerName、OrderTotal。
【问题讨论】:
标签:
sql
sql-server
join
sum
【解决方案1】:
您需要JOIN、GROUP BY 和 SUM。类似的东西:
SELECT o.ID,
o.OrderDate,
o.CustomerName,
SUM(ol.Amount * ol.Price) AS OrderTotal
FROM [Order] o
LEFT JOIN OrderLine ol /*If not all orders may have items */
ON o.ID = ol.OrderID
GROUP BY o.ID,
o.OrderDate,
o.CustomerName
【解决方案2】:
您的问题不完整。但我会尝试猜测剩余的缺失部分。
假设您有两个表。一张桌子有 Orders ,我们称它为tbl_orders,另一张桌子有订单的详细信息,我们称它为tbl_details。
我会这样做
select a.ID,a.OrderDate,a.CustomerName, sum(b.Amount * b.Price) OrderTotal
from tbl_orders a, tbl_details b where b.orderId = a.ID
group by a.ID,a.OrderDate,a.CustomerName