2013-02-18 98 views
-1

我試圖獲得客戶所有發票的總成本。理想情況下,最終格式將爲兩列[客戶名稱]和[發票總額]。到目前爲止,我已經把它分成了部分,所以我可以檢查並更好地理解加入表的過程,並計算出每張發票上的項目總數,但現在我被卡住了。跨表的多個計算

正如你可以從我的screenshot看到的(必須鏈接到我的谷歌文檔,因爲我不能在這裏發佈圖像 - 對不起)我得到的公司名稱多次列出。一次爲每個項目,也爲每個發票號碼,然後項目。如何將我的查詢更改爲僅顯示客戶名稱一次,並將所有發票的總計相對應?

我有第3和第4行作爲我認爲接下來的內容的評論,所以我可以在將這個查詢調整到我想要的輸出之前按步驟工作。

感謝

+3

請使用代碼標籤將您的代碼直接複製到問題中,而不是給出屏幕截圖。這樣,任何想幫助你的人都可以複製和粘貼以開始查詢並修改它。請描述表格結構並將樣本數據放入問題中。 – 2013-02-18 14:46:36

+0

如果公司名稱是唯一的,請按公司名稱和發票金額進行分組。 – 2013-02-18 14:46:42

+1

謝謝丹我將來會這樣做。剛剛意識到我爲每個人做了多少努力。謝謝您的幫助。 – Vendril 2013-02-18 15:01:54

回答

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 
+3

恭喜@Ciarán取得1000的代表權。既然是我的贊同,那就把你放在那裏,你欠我一杯啤酒。 – 2013-02-18 15:12:03

+0

謝謝。你在什麼大陸上? – 2013-02-18 15:12:51

+0

非常感謝您的幫助。對不起,我沒有發佈我的代碼:/(n00b錯誤)我意識到我的別名非常混亂。您的查詢是完美的。現在要研究更多關於連接的知識,以便更好地理解它們。 – Vendril 2013-02-18 15:15:03

0

分組可以幫助,你也需要檢查,如果你的DBMS允許不使用agregate功能(一些數據庫不ALLW它,並返回誤導性的結果)分組。 多家公司是因爲關係公司發票產品我猜。

1

像這樣的東西應該工作使用SUMGROUP BY

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

如果你發佈你上面的整個查詢,我可以複製並粘貼到的例子。但是這應該讓你朝着正確的方向前進。