1

有如下考勤表:

| ATID | STID | ATDATE    | PRESENT |
..........................................................
| 1    |  25  | 6/8/2012  | true    |
| 2    |  25  | 7/8/2012  | true    |
| 3    |  25  | 15/8/2012 | true    |
| 4    |  25  | 19/8/2012 | false   |
| 5    |  25  | 25/8/2012 | true    |

数据在上面的表格中,但我需要这样:

| STID | ATDATE    | PRESENT |
..........................................................
|  null  | 1/8/2012   | null    |
|  null  | 2/8/2012   | null    |
..
..
|  25    | 6/8/2012   | true    |
|  25    | 7/8/2012   | true    |
..
..
|  null  | 30/8/2012  | null    |
|  25    | 31/8/2012  | true    |

记录少于一个月的天数,但我需要的记录取决于一个月的天数,显示表中的记录和其他记录应该是虚拟的。

4

1 回答 1

2

您将需要创建一个日历表,其中包含每个相关日期的条目,并使用它来加入您的出勤表。

 SELECT CalDate,STID,ATDATE,PRESENT 
 FROM Calendar
 LEFT JOIN Attendances
 ON Calendar.CalDate=Attendance.ATDATE    

这只是日历表的众多用途之一。

于 2012-08-17T13:36:05.637 回答