2015-11-19 4 views
0

У меня есть две таблицы с датами, которые необходимо учитывать в моем SQL.SQL Получить последнюю дату после фильтрации по дате

  • В таблицах (t1) указана дата внесения любых изменений в объект (что-то вроде измененной даты).
  • Таблица (t2) имеет дату, которая записывается при создании записей в t2.

Мне нужно определить, какое состояние данных было в t1, когда была создана запись t2. Поэтому я понимаю, что измененная дата должна быть до создания записи. Что я уже сделал. Но тогда это должна быть последняя модификация, которая была сделана до создания записи в t2.

Как это сделать? Я создал скрипку здесь:

SQL Fiddle

UPDATE: Я был в состоянии получить ответ, который 90% работоспособной. Единственный вопрос, который я есть сейчас, если есть точное совпадение в датах

Updated Fiddle

Для Чарльза Ксавьера записи данных возвращается как «в», где он должен быть «t1»

ответ

0

Хорошо, так что незначительная ошибка, что произошло была внешняя применяются должны быть упорядочены по дате, если это требуется самая последняя

SELECT t1.StaffName, t1.DateAppointed, t2.DateSet, t2.PName 
FROM Staff t1 
OUTER APPLY (
    SELECT TOP 1 m.DateSet, m.PName 
    FROM MPHist m 
    WHERE t1.DateAppointed >= m.DateSet AND m.PvpId = t1.PvpId 
    ORDER BY m.DateSet 
) t2 

, необходимые для проводки SQL как SQLFiddle был пристанет, когда пытается обновить скрипку или даже создать новый

Смежные вопросы