我有以下提到的数据库:
ID TFD1 Date CCA
D-1 123 25-01-2017 AA
D-2 123 24-01-2017 BA
D-3 123 27-01-2017 BB
D-4 456 15-01-2017 AA
D-5 456 13-01-2017 BS
D-6 789 11-01-2017 AA
我想要抓取ID
,TFD1
,Date
和CCA
,其中至少有一个与TFD1
对应的值为{{1} }和AA
对应的所有其他旧值不是TFD1
。
我想创建按最旧到最新排序的输出。
必需输出:
AA
答案 0 :(得分:0)
要获得您可以使用的“A”:
select t.*
from t
where (t.cca = 'A' and
not exists (select 1 from t t2 where t2.tfd1 = t.tfd1 and t.cca = 'A')
) ;
通过此,您可以在此日期之前获取每个tfd1
的所有内容:
select t.*
from t join
(select t.*
from t
where (t.cca = 'A' and
not exists (select 1
from t t2
where t2.tfd1 = t.tfd1 and t.cca = 'A' and t2.date < t1.date
)
)
) tt
on t.tfd1 = tt.tfd1 and t.date <= tt.date;