SQL データベースに 2 つのテーブルがあります。'course' および 'event' の場合、コース テーブルには courseID (pk)、coursecode、および coursetitle フィールドがあります。イベント テーブルには、eventID (pk) courseID (fk)、startdate、enddate があります。
イベント テーブルの startdate を使用して、すべてのコースのリストを、コースが最後に開催された日付と次の予定日を示す列と共に返す必要があります。
次のように、イベント テーブル内の特定のコースの最新の日付または次の日付を取得できます。
SELECT TOP 1
startdate as nextdate
FROM event
WHERE
CONVERT(VARCHAR(8),startdate,112) > CONVERT(VARCHAR(8), GETDATE(), 112)
AND coursecode = 'acc01'
ORDER BY startdate ASC
結果が次のように表示されることを望みます。
+------------+-------------+------------+-------------+------------+-------------+
| coursecode | coursetitle | lastevent | lasteventid | nextevent | nexteventid |
+------------+-------------+------------+-------------+------------+-------------+
| acc01 | Access | 2012-09-30 | 20127 | 2013-12-10 | 35612 |
| wrd37 | Word | 2013-11-02 | 34816 | NULL | NULL |
+------------+-------------+------------+-------------+------------+-------------+
各コースコードを 1 回表示する必要があります (コースはさまざまなサプライヤーから提供されているため、コースコードは一意のフィールドではない可能性があるため、courseid フィールドです)。コースに過去の日付、未来の日付、または日付がまったくない可能性があります。これらの日付/イベント ID フィールドは Null で問題ありません。レポート デザインでフォーマットするからです。
質問を繰り返さないことを願っていますが、これまでのところ何も見つかりませんでした。
助けてくれてありがとう