我有一台美国广播公司筛选表在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