У меня есть две таблицы, которые я пытаюсь объединить в запросе, но у меня возникают некоторые трудности с получением необходимого результата.
Таблица: сканы
ScanId ScanTime
1 8:00
2 8:15
3 9:00
4 9:30
6 10:00
7 10:45
8 11:00
9 11:10
Таблица: ответы
ScanId RespA RespB
3 ABC X
7 DEF Y
9 GHI Z
Существует внешний ключ в Responses.ScanId, который ссылается на Scans.ScanId.
Таблица ответов может иметь или не иметь соответствующую строку для каждой строки в таблице сканов.
Что мне нужно сделать, это вывести результат, показанный ниже, каждая строка в таблице сканов возвращается с самой последнейпредыдущие значения ответа.
Для Scans.ScanId 1 и 2 предыдущий ответ отсутствует, поэтому столбцы Response равны нулю.
Для Scans.ScanId 3, 4 и 6 - самые последние предыдущиеRespA - это ABC, а RespB - это X (ScanId = 3)
Для Scans.ScanId 7 и 8 самое последнее предыдущее RespA - это DEF, а RespB - Y (ScanId = 7)
для сканирования.ScanId 9, самый последний предыдущий RespA - это GHI, а RespB - это Z (ScanId = 9)
Требуемый вывод:
ScanId ScanTime RespScanId RespA RespB
1 8:00 NULL NULL NULL
2 8:15 NULL NULL NULL
3 9:00 3 ABC X
4 9:30 3 ABC X
6 10:00 3 ABC X
7 10:45 7 DEF Y
8 11:00 7 DEF Y
9 11:10 9 GHI Z
У меня возникли трудности с выяснением того, как написать объединениепункт для этого.Он должен работать на Sql Server 2005 и выше.