-1

我正在尝试获取客户所有发票的总成本。理想情况下,最终格式将是两列 [客户名称] 和 [总发票]。到目前为止,我已将其分解为多个部分,以便我可以检查并更好地了解加入表格的过程,并进行了计算以获得每张发票上的项目总数,但现在我被卡住了。

正如您从我的屏幕截图中看到的(必须链接到我的谷歌文档,因为我无法在此处发布图片 - 抱歉)我多次列出公司名称。每个项目一次,每个发票编号,然后项目。如何更改我的查询以仅显示一次客户名称以及所有发票的相应总计?

我将第 3 行和第 4 行作为我认为下一步的注释,因此我可以在将查询微调到我想要的输出之前分步执行此操作。

谢谢

4

3 回答 3

1

像这样的东西应该使用SUMand工作GROUP BY

SELECT CustomerName, SUM(itemPrice * qty) InvoiceTotal
FROM YourTables With Your Joins
GROUP BY CustomerName

如果您在上面发布了整个查询,我可以复制并粘贴到示例中。但这应该让你朝着正确的方向前进。

于 2013-02-18T14:50:23.027 回答
1
Select Customer.CustName, Sum(InvoiceItem.Quantity*Item.ItemPrice) As TotalValue
  From Customer
       Inner Join Invoice On Customer.CustABN = Invoice.CustABN
       Inner Join InvoiceItem On Invoice.InvoiceNo = InvoiceItem.InvoiceNo
       Inner Join Item On InvoiceItem.ItemNo = Item.ItemNo
 Group By Customer.CustName
于 2013-02-18T14:51:40.327 回答
0

分组可能会有所帮助,您还需要检查您的 dbms 是否允许在不使用聚合函数的情况下进行分组(某些 DBMS 不允许这样做,并返回误导性结果)。多家公司是因为我猜是公司-发票-产品的关系。

于 2013-02-18T14:49:59.953 回答