我有一臺美國廣播公司篩選表在SQL
Id Date status
C01 Jul 3 A
C02 Jul 5 B
C03 Jul 9 A
C02 Jul 9 A
C05 Jul 3 C
C02 Jul 3 C
C03 Jul 12 C
C05 Jul 13 A
我想篩選此表 再出把...
Id Date Status
C01 Jul 3 A
C02 Jul 9 A
C03 Jul 12 C
C05 Jul 13 A
我有一臺美國廣播公司篩選表在SQL
Id Date status
C01 Jul 3 A
C02 Jul 5 B
C03 Jul 9 A
C02 Jul 9 A
C05 Jul 3 C
C02 Jul 3 C
C03 Jul 12 C
C05 Jul 13 A
我想篩選此表 再出把...
Id Date Status
C01 Jul 3 A
C02 Jul 9 A
C03 Jul 12 C
C05 Jul 13 A
如果group by
您的ID和狀態,你不會獲得預期的產出。你需要讓你的max date
每個ID,並通過Join
Select T1.Id, T1.Date, T2.Status from
(select Id, max(Date) as 'Date'
from Abc group by Id) T1
INNER JOIN Abc T2 on T1.Id = T2.Id and T1.Date = T2.Date order by Id asc
的獲取狀態,如果有二等於dates
一個標識可能會失敗,但如果你正在尋找的Max
這should't發生。 (或者我們需要更多的信息來知道,在這個情況下,這樣做)
這會做你想要什麼,如果你Date
列數據類型,日期,而不是一個字符串。
select *
from
(
select *,
row_number() over(partition by Id order by Date desc) as rn
from Abc
) as T
where T.rn = 1
+100,如果我可以 - 你怎麼從那個OP給我們(和你)的小信息中找出那一個...... – 2012-07-27 17:25:53
@marc_s幸運我猜:)用琴絃試了一下首先提供,當然不起作用。考慮做一些高級的字母數字排序,但沒有這樣做,因爲該列的名稱是「日期」,它應**是日期/日期時間。 – 2012-07-27 17:33:15
**你有什麼想要篩選?**什麼是條件而定?只是給我們輸入和輸出,讓我們** GUESS **你想要什麼不是真正的生產..... – 2012-07-27 16:45:22
過濾狀態A與上次修改日期 – kaira 2012-07-27 16:57:00
如果你想這樣做,爲什麼你的產量有一個「C」狀態 ?請使用正確的信息和過濾條件編輯您的問題 – 2012-07-27 16:58:37