我有一個像這樣的查詢:
--FIRST QUERY
SELECT a.EmployeeId, a.Seq, a.EmployeeAddress
INTO #Address
FROM Address a
WHERE a.Seq = 1
--SECOND QUERY
SELECT a.EmployeeId, a.PayrollType, SUM(a.Amount) Amount
INTO #Payroll
FROM Payroll a
WHERE a.PayrollType = 'THR'
GROUP BY a.EmployeeId, a.PayrollType
--RESULT
SELECT a.EmployeeId, a.EmployeeName, b.ReligionName,
ISNULL(c.EmployeeAddress, '-') EmployeeAddress, ISNULL(d.Amount,0) Amount
FROM Employee a
INNER JOIN Religion b ON a.ReligionId = b.ReligionId
LEFT JOIN #Address c ON a.EmployeeId = c.EmployeeId
LEFT JOIN #Payroll d ON a.EmployeeId = d.EmployeeId
這是我的截圖表:

結果正是我需要的。但是,我很好奇是否有另一種方法來簡化查詢。任何的想法?
謝謝你。
uj5u.com熱心網友回復:
您只能使用 1 個查詢而不是使用臨時表
--RESULT
SELECT a.EmployeeId, a.EmployeeName, b.ReligionName,
ISNULL(c.EmployeeAddress, '-') EmployeeAddress, SUM(ISNULL(d.Amount,0)) Amount
FROM Employee a
INNER JOIN Religion b ON a.ReligionId = b.ReligionId
LEFT JOIN Address c ON a.EmployeeId = c.EmployeeId and c.Seq = 1
LEFT JOIN Payroll d ON a.EmployeeId = d.EmployeeId and d.PayrollType = 'THR'
GROUP BY a.EmployeeId, a.EmployeeName, b.ReligionName, c.EmployeeAddress
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460701.html
標籤:sql sql服务器 tsql sql-server-2012
上一篇:處理sql-無法從變數中選擇
下一篇:檢查范圍之間的日期是否可用
