-2
我爲我的出勤報告編寫了下面的查詢。除了一件事以外,一切正常。我現在在我的應用程序中有一天允許多個簽入/簽出,當我運行我的查詢時,它返回簽入,簽出,總計,簽入結帳總數。我期待的結果就像是:checkin,checkout,checkin,checkout .... total。考勤報表的SQL數據透視查詢
下面是查詢:
SELECT EmployeeID, Employee, [2016-09-01],[2016-09-02],[2016-09-05],[2016-09-06],[2016-09-07],[2016-09-08],[2016-09-09] from
(
SELECT src.EmployeeID, isnull(b.EmployeeName,'') +' '+ isnull(b.LastName,'') Employee
,[CheckinDate]
, ISNULL(CAST(c.LeaveDesc as VARCHAR(max)), STUFF((
SELECT ', ' + CAST(ISNULL(CheckinTime,'') AS VARCHAR(5)) + char(10) + CAST(ISNULL(CheckoutTime,'') AS VARCHAR(5)) +
char(10) + CAST(ISNULL(TotalHours,'') AS VARCHAR(5))
FROM EmployeeDetail
WHERE (EmployeeID = src.EmployeeID and CheckinDate = src.CheckinDate)
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,2,'')) AS Result
FROM [EmployeeDetail] as src inner join EmployeeMaster b on src.EmployeeID = b.EmployeeID and src.KindergardenID = b.KindergardenID
left outer join leavetype c on src.leaveid = c.leaveid
WHERE src.KindergardenID = 1
GROUP BY src.EmployeeID, isnull(b.EmployeeName,'') +' '+ isnull(b.LastName,''), CheckinDate,LeaveDesc
) x
pivot
(
max(Result)
for CheckinDate in ([2016-09-01],[2016-09-02],[2016-09-05],[2016-09-06],[2016-09-07],[2016-09-08],[2016-09-09])
) p
在更改查詢,使其按預期任何幫助表示讚賞。 讓我知道如果我在詢問時感到困惑。
的Microsoft SQL Server 2012 – Anjum
請提供上輸入一些數據樣本,查詢結果你現在越來越和輸出什麼,你真正想要得到的。 – gofr1
您能提供輸入和輸出樣本數據嗎? –