0
我試圖創建一個爲員工所做的所有最新付款的表。原始表格包含自從他們開始以來對員工進行的所有付款。我創建了一個派生表,只給我帶有最新日期的記錄。SQL Group通過派生表的問題
我仍然有一些重複的付款日期是相同的,在這種情況下,我想將這些付款添加在一起,以便它們出現在一行上。
以下是我的工作代碼;
SELECT T1.EmployeeCode
, T2.Staff_Number
, T2.Firstname + ' ' + T2.Surname AS Name
, T1.PaymentDate
, T1.p1
, T1.p2
, T1.p3
FROM DB1.dbo.PARTIFPSNI AS T1
--This section is supposed to return only the latest date
INNER JOIN (
SELECT EmployeeCode, MAX(PaymentDate) as MaxDate
FROM DB1.dbo.PARTIFPSNI
GROUP BY EmployeeCode
) T1A ON T1.EmployeeCode = T1A.EmployeeCode and T1.PaymentDate = T1A.MaxDate
LEFT JOIN DB2.dbo.Personnel_Records AS T2 ON (T1.EmployeeCode = T2.Staff_Number)
這將返回下面;
我似乎有P1加在一起,P2 P3 &問題。我認爲這是因爲我試圖兩次使用GROUP BY函數。
一些和/或混淆?在WHERE子句中添加一些額外的括號以使事情更清晰。 – jarlh
編輯您的問題並提供樣本數據和期望的結果。 –
順便提一下,這是一個僞外連接。外連接行中的列將爲空,因此對於外連接行,「T2.Staff_Number IS NOT NULL」永遠不會爲真,這會使您的連接變爲單純的內連接。 –