2017-06-01 17 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

Iは、個々の請求書の総計を持っているよ、この例では私は2枚の請求書を持っており、各予約の合計を末尾に示されている含まれます。私はROLLUP機能を実装することは可能ですが、実装する方法は苦労しています。 –

+0

あなたは本当にJOINのANSIへの切り替えを検討するべきではなく、文字列のテーブルに昔ながらの方法を一緒WHERE句インチ請求書の予約やコースにインボイスはどのように関連していますか?クライアントの詳細と単一のクライアントのアドレスのみを表示することは意図的なのですか?期待される成果は? – SchmitzIT

答えて

1

あなたはおそらく必要がある、それだけでwindow functionだこの場合Rollup`」について考えて正しい道にいる:

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

おかげで、私が望んでいた正確にどのように動作します:) –

関連する問題