2015-10-28 120 views
0

我們有一個具有以下信息的表格: table1SQL SUM篩選查詢

我需要接收一個「開始日期」和「結束日期和將產生的發票總額T-SQL代碼,客戶ID分組和發票類型,以及在該日期範圍內生成的所有發票以及該客戶的發票總額(信用和現金合計)

例如,如果我們提供開始日期01-10-2012和結束日期10- 11-2012應該是:

result_table

這是我有:

DECLARE @startdate DATE, @enddate DATE  
SET @startdate = '01-10-2012'  
SET @enddate = '10-11-2012' 

SELECT CustomerId, InvoiceType, SUM(Total) As Total 
FROM Invoices  
WHERE Date BETWEEN @startdate AND @enddate 
GROUP BY CustomerID, InvoiceType 

它工作正常,但我無法想出一個方法來計算「共2」一欄,因爲我已經被「invoicetype」分組行。

請幫忙。

謝謝。

+0

生成'Total2'使用子查詢。 –

+0

最直接的方法是在您的select子句中添加一個子查詢,以按客戶ID進行求和。 –

回答

0

這應該工作:

SELECT CustomerId, InvoiceType, SUM(Total) As Total 
, (
SELECT SUM(Total) FROM Invoices t2 WHERE t2.CustomerId=t1.CustomerId 
) AS Total2 
FROM Invoices t1  
WHERE Date BETWEEN @startdate AND @enddate 
GROUP BY CustomerID, InvoiceType 
+0

太棒了。謝謝。 – Pablo

+0

很高興幫助。您可以通過點擊此答案左上角的複選標記來關閉此問題。 –