-2
出席者レポートのために以下のクエリを作成しました。 1つのこと以外はすべて正常に動作します。私はチェックイン、チェックアウト、合計、チェックインチェックアウトの合計を返す私のクエリを実行するとき、私は複数のチェックイン/チェックアウトが1日に許可されている私が期待している結果は、チェックイン、チェックアウト、チェックイン、チェックアウトなどです。以下はSQL Pivot Query for Attendanceレポート
クエリです:
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
入力と出力のサンプルデータを提供できますか? –