2010-11-30 2 views
1

私はテーブルを持っている:ヘルプ

ID Title Date 
30 1  10/10/2010 
20 1  10/11/2010 
40 2  01/01/2010 

私は最大の日付との明確なタイトルを選択するための方法が必要です。
タイトルが1のときは、1行目の日付が2行目の日付よりも小さいので、2行目を選択する必要があります。結果として
クエリが返す必要があります:

20 1 10/11/2010 
40 2 01/01/2010 
+0

をあなたは30 1 2010年10月11日を意味するものではありませんか? – StuartLC

+0

結果セットには、最初の行のIDと2番目の行のIDが表示されます。これはあなたが望むものか、またはタイプミスですか? – Robb

+0

oops my bad ...固定 – scatman

答えて

2

あなたのデータセットが不明であるトリックを行う必要があります。あなたは最小のIDと最大の日付をしたいですか?

SELECT ID=MIN(ID), Title, [Date] = MAX([Date]) 
FROM Table 
GROUP By Title 

これはタイプミスで、最大日付の行が必要です(日付がID値に従わないと仮定して)。

SELECT a.ID 
     , a.Title 
     , a.Dt 
FROM Table a 
     JOIN (SELECT b.Title 
         , Dt = MAX(Dt) 
       FROM  Table b 
       GROUP BY Title 
      ) c ON a.Dt = c.Dt 
        AND a.Title = c.Title 
2
select max(ID) as ID, max(Date), Title 
from table 
group by Title 

+1

これはデータサンプルには有効ですが、最大日付が最大IDが – Robb

+0

の行にないときにブレークしますが、最大のIDが最大の日付であることは必ずしも真ではありません....テーブルを編集します... – scatman

0
select 
max(ID), Title , max(Date) 
from 
table 
group by 
Title 
+0

これは動作しません。 IDとタイトルでグループ化しています。つまり、すべての行が返されます(IDが一意であると仮定して)。 –

+0

一意のIDでグループ化するとすべての行が返されます – Robb

+0

非常に良い点です!正確に編集されました –