我需要使用PIVOT以每月格式显示出勤数据。但无法弄清楚该怎么做。
下面是我的表格结构
出席:
AttendanceID EmployeeID AttendanceDateTime
员工:
EmployeeID EmployeeName
假日:
HolidayID HolidayDate
离开:
LeaveID EmployeeID LeaveDateTime IsApproved
我想根据上表中提供的数据显示如下结果
EmployeeName 01-09-2016 02-09-2016 03-09-2016 04-09-2016
A Present Absent Holiday Leave
1条答案
按热度按时间2uluyalo1#
因此,在创建日期数据透视表之前,你可能要做的第一件事就是弄清楚你想要透视哪些日期。为了举例的目的,我刚刚在这个答案中加入了一种方法,你可以在一定范围内获得每个日期,但这实际上取决于你在寻找什么。
这里的基本逻辑是,您希望生成要检查的日期,将这些日期与每个不同的表进行比较(使用左联接或外部应用),只获得一个结果(此答案中的逻辑使用合并来决定将显示哪个值),然后将结果枢轴旋转。
**编辑:**如果您需要
PIVOT
作为一组动态列名(例如,动态日期范围),则需要使用动态SQL。有一种方法可以做到:更改开始和结束日期将更改输出。您可以使用
PRINT @SQL
查看实际查询。