我有一个表ClassAttendance,正在使用MSSQL 2005
studentID attendanceDate status ------------------------------------- *1004 2010-03-17 0 1005 2010-03-17 1 1006 2010-03-17 0 1007 2010-03-17 0 *1004 2010-03-19 0 1005 2010-03-19 1 1006 2010-03-19 0 1007 2010-03-19 0 *1004 2010-03-20 1
如您所见,studentID是一个名为StudentData的表的外键,而AttendedDate的行数未知。
我可以通过使用查询获得如下所示的输出吗?我需要将一个月中的日期作为列,而日期列的值将是状态列中的值。每个studentID的日期记录数与其在AttenceDate中提交的未知日期数相同。
studentID 2010-03-17 2010-03-19 2010-03-20 ------------------------------------------------ 1004 0 0 1
等等。这是用于创建报告的,因此我需要在查询中进行。如果可以的话请帮忙。
您可以使用PIVOT。看一下这篇文章。