繁体   English   中英

SQL-尝试对单个订单求和

[英]SQL - Trying to sum individual orders

我有一个数据库,其中:

  • 1个客户可以下很多订单
  • 1个订单可以包含许多订单项

我的桌子是

  • 顾客
  • 命令
  • 订单项

我想生成一个报告,向我显示通过添加行项目已计费的订单的价值。

当我尝试

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;

假设CustomerNumberOrders表中,则不需要CUstomers表。

当然,如果您按CustomerNumber分组,则会这样做。 删除GROUP BY中的CustomerNumber以获取所有订单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM