Это дополнительный вопрос к Получить следующую запись в запросе . Но задача немного сложнее. Я попытался изменить запрос SQL, но мне не удалось выполнить задачу.
Если у нас есть две таблицы, одна называется Activity и имеет строки [ActivityCode и StartTime], а другая - «Студенты» имеет строки [Имя и идентификатор], например:
Name-----ID-----ActivityCode-----StartTime<BR>
Tom------123------Lunch------------1200<BR>
Tom------123------MathClass--------1300<BR>
Tom------123------EnglishClass-----1500<BR>
Tom------123------EndOfSchool------1700<BR>
Mary-----369-----Lunch------------1200<BR>
Mary-----369-----ScienceClass-----1300<BR>
Mary-----369-----EnglishClass-----1600<BR>
Mary-----369-----EndOfSchool------1700<BR>
И теперь я хочу сделать один SQL Запрос, который будет отображаться следующим образом:
Name-----ID------ActivityCode-----StartTime------EndTime<BR>
Tom------123--- Lunch------------1200-----------1300<BR>
Tom------123-----MathClass--------1300-----------1500<BR>
Tom------123-----EnglishClass-----1500-----------1700<BR>
Tom------123-----EndOfSchool------1700-----------1700<BR>
Mary-----369-----Lunch------------1200-----------1300<BR>
Mary-----369-----ScienceClass-----1300-----------1600<BR>
Mary-----369-----EnglishClass-----1600-----------1700<BR>
Mary-----369-----EndOfSchool------1700-----------1700<BR>
Я следую коду, кредиты на Густав:
SELECT
Activity.ActivityCode,
Activity.StartTime,
Nz((Select Top 1 StartTime
From Activity As T
Where T.StartTime > Activity.StartTime
Order By StartTime Asc),
[StartTime]) AS EndTime,
CDate(TimeSerial(Val([EndTime])\100,Val([EndTime]) Mod 100,0)-
TimeSerial(Val([StartTime])\100,Val([StartTime]) Mod 100,0)) AS Duration
FROM
Activity;
Я попытался изменить часть
Order By StartTime Asc
Потому что весь запрос отсортирован по идентификатору студента из другой таблицы. Но выскакивали окна с сообщениями, и я не мог их решить. Как я могу это изменить? спасибо.