2015-12-22 2 views
-1

У меня была таблица 'User_Relation', которая содержит взаимосвязанные последние обновленные столбцы. Она содержит кучу записей на основе отношений отца, матери и сына.Retrieve Последние обновленные записи, основанные на условии WHERE

Мне нужно получить последнюю запись для всех отношений за раз, используя запрос. Не нужно использовать курсор.

enter image description here

Это мой желаемый результат

enter image description here

+4

Опубликовать образцы данных и Требуемый вывод – mohan111

+0

из этой таблицы Мне нужна последняя обновленная запись для каждого отношения –

+1

попробуйте это http://stackoverflow.com/questions/4751913/retrieving-last-record-in-each-group-from-database -sql-server-2005-2008 – mohan111

ответ

1

Использование С СТЕ:

;WITH cte 
     AS (SELECT *, 
       Row_number() 
        OVER(
        partition BY relationfamily 
        ORDER BY lastmodify DESC) AS result 
      FROM User_Relation) 
SELECT relationfamily, 
     lastmodify 
FROM cte 
WHERE result = 1 
+1

Один кодовый блок не дает хорошего ответа. Пожалуйста, добавьте пояснения. –

+0

Да, это работает с вашей функцией window.I может получить каждую целую строку за раз. Спасибо ... –

0

Проверьте ниже запрос и надеемся, что это поможет вам:

SELECT relationfamily, MAX(lastmodify) 
FROM User_Relation 
WHERE mainuser = 'sivabrahma' 
GROUP BY relationfamily 
+0

SO запрашивает каждое отношение. Может быть, это не даст ожидаемого результата @paresh J – mohan111

+0

этот хорошо работает –

+0

@ mohan111: У меня ИСПОЛЬЗУЕТСЯ ГРУППА Я ДУМАЮ, ЧТО ЭТО БУДЕТ ГРУППАТЬ КАЖДОЕ ОТНОШЕНИЕ С ИХ МАКСИМАЛЬНЫМИ ДАТЫ ДЛЯ МЕНЯ. –

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