[英]SQL - Trying to sum individual orders
我有一个数据库,其中:
我的桌子是
我想生成一个报告,向我显示通过添加行项目已计费的订单的价值。
当我尝试
SELECT Customers.CustomerNumber, Orders.OrderNumber,
SUM(LineItems.ItemPrice * LineItems.QuantityOrdered) AS 'Order Value'
FROM LineItems.ItemNumber
WHERE Customers.CustomerNumber = '1234'
GROUP BY Orders.OrderNumber, Customers.CustomerNumber
这似乎给了我单个订单,但是却给了我客户下的所有订单的总价值。
有没有办法单独显示每个订单的价值而不是所有下达的订单总和?
SELECT
Agreement.AgreementNumber AS 'Agreement Number',
POBase.PurchaseOrderNumber AS 'Purchase Order Number',
SUM(POLI.UsedPrice * POLI.QuantityOrdered) AS 'Billed Amount'
FROM MyDatabase..PurchaseOrderLineItemBase AS POLI
INNER JOIN
MyDatabase..AgreementBase AS Agreement
ON POLI.AgreementKey = Agreement.AgreementKey
INNER JOIN
MyDatabase..PurchaseOrderBase AS POBase
ON POLI.AgreementKey = POBase.AgreementKey
WHERE
(Agreement.AgreementNumber = '1234'
OR Agreement.AgreementNumber = '234')
AND POLI.POLineItemStatusName = 'Invoiced'
GROUP BY
POBase.AgreementKey,
POBase.PurchaseOrderNumber,
Agreement.AgreementNumber
ORDER BY
Agreement.AgreementNumber
您的查询没有意义,因为列出的表不在from
子句中。 尝试这个:
SELECT o.CustomerNumber, o.OrderNumber,
SUM(li.ItemPrice * li.QuantityOrdered) AS 'Order Value'
FROM orders o JOIN
LineItems li
ON o.OrderNumber = li.OrderNumber
WHERE o.CustomerNumber = '1234'
GROUP BY o.OrderNumber, o.CustomerNumber;
假设CustomerNumber
在Orders
表中,则不需要CUstomers
表。
当然,如果您按CustomerNumber分组,则会这样做。 删除GROUP BY中的CustomerNumber以获取所有订单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.