0
我想對於瞭解一點SQL的人來說,這應該相對容易一些。在SQL內部連接表中加上2列
這裏是我當前的腳本:
SELECT t1.Invoice_Number
,t1.Override_Cashier_ID
,t1.Exception_Type
,t1.ItemNum
,t1.Amount
,t1.Quantity
,t1.Amount*t1.Quantity AS Total
,t1.Reason_Code
,t2.DateTime
FROM [esql].[dbo].[Invoice_Exceptions] AS t1
INNER JOIN [esql].[dbo].[Invoice_Totals] AS t2
ON t1.Invoice_Number = t2.Invoice_Number
WHERE t1.Exception_Type = 2
AND CAST(t2.DateTime as date) > '20160127'
AND CAST(t2.DateTime as date) < '20170101'
我要完成兩兩件事:
- 琛的 '合計' 欄,是這樣的:SUM(t1.Amount * t1.Quantity) AS總計
- 將這些由'Reason_Code'組成的字符串組合起來。假設原因代碼包含2種不同的值可能性,「我」和「你」。我希望在查詢運行後只顯示2行,對於包含相加值的每個原因代碼,只顯示1行。
一些示例數據將是:
的數量和金額列都是小數。我期望最終的數據看起來像這樣:
Reason_Code - Total - Date_Range
Me 4000 2016-01-27 - 2017-01-01
You 3500 2016-01-27 - 2017-01-01
Where some sample data may be:
Invoice_Number - Reason_Code - Amount - Quantity - Total - DateTime
12345 Me 500 2 1000 2016-01-29 21:24:07.000
12346 Me 1000 3 3000 2016-01-29 23:15:19.000
12347 You 500 1 500 2016-01-29 19:00:17.000
12348 You 1000 3 3000 2016-01-29 21:46:29.000
我希望這是足夠簡潔!謝謝你的幫助!
編輯:
因此,使用建議,到目前爲止,我意識到我必須在SQL didnt帶來了太多的數據知道該怎麼做。我現在有這個,有95%:
SELECT
sum(t1.Amount*t1.Quantity) AS Total
,t1.Reason_Code
FROM [esql].[dbo].[Invoice_Exceptions] AS t1
INNER JOIN [esql].[dbo].[Invoice_Totals] AS t2
ON t1.Invoice_Number = t2.Invoice_Number
WHERE t1.Exception_Type = 2
AND CAST(t2.DateTime as date) > '20160127'
AND CAST(t2.DateTime as date) < '20170101'
GROUP BY t1.Reason_Code
現在有什麼方法顯示日期範圍?
你能分享一些樣本數據和你試圖得到的結果嗎? – Mureinik
或者至少你的表格架構?理想情況下,您應該提供一個設置腳本來創建表格並用一些虛擬數據填充它們。這對那些想要提供經過測試的答案的人非常有幫助。 – Alexei
我對原始帖子進行了編輯。如果可能的話,我主要工作但只需顯示日期範圍... – tmman