从Sql

时间:2018-03-16 13:34:36

标签: mysql sql

我有以下提到的数据库:

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

我想要抓取IDTFD1DateCCA,其中至少有一个与TFD1对应的值为{{1} }和AA对应的所有其他旧值不是TFD1

我想创建按最旧到最新排序的输出。

必需输出:

AA

1 个答案:

答案 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;