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    

これは、カレンダー テーブルの多くの用途の 1 つにすぎません。

于 2012-08-17T13:36:05.637 に答える