Вопрос по следующему:
У меня есть таблица (клиент), которая содержит несколько записей с одним и тем же именем пользователя (к сожалению, это ограничение внешнего интерфейса программного обеспечения). Когда я присоединяюсь к этой таблице по имени пользователя, она, очевидно, возвращает несколько строк. Обычно я использую ROW_NUMBER (), разделяю по имени пользователя и порядку в нужном мне поле, а затем присоединяюсь, чтобы ограничить набор результатов одним и вернуть желаемые столбцы, и в прошлом это хорошо работало. Однако я пытаюсь использовать это так, как раньше ... Я разделяю по имени пользователя и упорядочиваю по дате последнего обновления записи, чтобы вернуть третье поле, в данном случае адрес . Обратите внимание на результаты следующей таблицы:
Username|UpdatedDate|Address
JSmith |10-10-14 |NULL
JSmith |05-24-14 |1 Main Street
Цель состоит в том, чтобы вернуть самую последнюю запись, но если последняя запись не содержит Address, получить адрес из предыдущей записи.
Это возможно?
РЕДАКТИРОВАТЬ :
@Gordon ... возможно, я что-то не понимаю, но при первом подходе дата последнего обновления не учитывается при заказе. Итак, если таблица выглядит так:
JSmith|10-10-14|1 Main
JSmith|04-20-14|1 Main
JSmith|01-10-13|5 Main
Он вернет 1 для всех строк. Конечная цель состоит в том, чтобы захватить только одну запись. Если имеется несколько записей, чтобы получить самую свежую запись, но затем, если адрес равен NULL, захватите следующую самую последнюю запись с адресом.