2014-01-20 2 views
0
+--+-------+----------+---+ 
|ID|OrderID|OrderDate |Cat| 
+--+-------+----------+---+ 
|1 |240904 |23/05/2013|63 | 
+--+-------+----------+---+ 
|1 |338584 |11/12/2013|64 | 
+--+-------+----------+---+ 
|1 |47309 |21/11/2011|64 | 
+--+-------+----------+---+ 
|2 |175307 |23/11/2012|63 | 
+--+-------+----------+---+ 
+--+-------+----------+---+ 
|2 |195307 |24/12/2012|64 | 
+--+-------+----------+---+ 
+--+-------+----------+---+ 
|2 |175300 |23/11/2011|63 | 
+--+-------+----------+---+ 
+--+-------+----------+---+ 
|5 |175307 |23/11/2012|63 | 
+--+-------+----------+---+ 
+--+-------+----------+---+ 
|5 |215307 |15/1/2013|64 | 
+--+-------+----------+---+ 
+--+-------+----------+---+ 
|7 |195307 |15/06/2012|63 | 
+--+-------+----------+---+ 

Я использую SQL Server 2008 R2. Я пытаюсь (пытаюсь) найти способ получить более свежие OrderDate для Cat 64, затем Cat 63 для одного идентификатора из таблицы, которая выглядит как те записи, разделенные | выше.Как исключить строки для одного и того же идентификатора на основе категории и даты

+0

Спасибо за редактирование Михая :) –

+0

вы пробовали мой ответ ниже –

ответ

0

Попробуйте как этого

Select OrderID,OrderDate From 
(
Select *,ROW_NUMBER() over(PARTITION by ID,CAT Order by OrderDate DESC) AS RN 
From tbl 
) AS Tmp 
Where RN = 1 

Working Fiddle

+0

Спасибо Вигнеш :) Я пытаюсь сейчас. –

+0

Значок Полезно, если это вам помогло –

+0

Я получаю список всех идентификаторов orderID для каждого ID, Vagnesh. То, что мне нужно получить, - это один заказ, который orderdate больше, чем любой orderdate на cat 63. Это имеет смысл? –

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