2017-06-01 72 views
0

我正在尋找一種方式來總結我的發票在另一列中的SQL,但掙扎,沒有人有一個想法如何做到這一點?提前致謝。尋找一種方法來總計我的每一個發票

SELECT I.Invoice_ID AS "Invoice ID", I.Client_ID AS "Client ID", 
     B.Client_Name AS "Clients Name", B.Client_Address AS "Clients Address", 
     I.Invoice_Date AS "Date of Invoice", B.Course_ID AS "Course ID", 
     C.Course_Description AS "Course Description", TO_CHAR(C.Cost, 'L9,999.99') AS "Cost", 
     B.Attendees_No AS "Number of Attendees", TO_CHAR(C.cost * B.Attendees_No, 'L9,999.99') AS "Total" 
FROM Invoice I, Booking B, Course C 
WHERE B.Client_Name = 'Central Library' AND B.Course_ID = C.Course_ID; 

This is a picture of the query

+0

您的發票總額是什麼意思? – itay

+0

我希望每個人都有一個總計發票,在我收入的例子中,我有兩張發票,每個預訂的總數顯示在最後。我確定可以實現一個ROLLUP函數,但在如何實現它的過程中掙扎着。 –

+0

您真的應該考慮切換到ANSI JOIN,而不是在WHERE子句中將表格串聯在一起的舊式方法。發票與您的查詢中的預訂或課程有何關係?您是否故意僅顯示單個客戶的客戶詳細信息和地址?你的預期產出是多少? – SchmitzIT

回答

1

你在正確的道路想着「Rollup`在這種情況下,它只是一個window function,你可能需要上:

SUM(C.cost * B.Attendees_No) OVER (PARTITION BY I.Invoice_ID) as Total 

這將吐出的C.cost * B.Attendees_No總和每個Invoice_ID。因此,在您的記錄集中具有相同invoice_id的記錄應在此處顯示相同的total

+0

謝謝,作品完全如何我想:) –

相關問題