嗨,我有一个问题,我被困在哪里,我想选择活跃日期的记录。以下是我的代码:
SELECT DISTINCT
Table1.Field1,
Table2.Field1,
Table3.Field1,
FROM Table1
inner join Table2 on Table1.Field1 = Table2.Field1
inner join Table3 on Table1.Field1 = Table3.Field1
WHERE Table1.Field1 IN (SELECT Table4.Field1 FROM Table4)
Table1.Field1是我的ID字段,由于日期字段而具有多行,Table3.Field1是日期字段。我只想要具有活动日期的行,例如,这里有一行包含多行:
Table1.Field1 Table3.Field1
12345 2013-09-11
12345 2013-12-11
12345 2014-03-11
12345 2014-06-11
12345 2014-09-17
我想从这条记录中获取的行是:12345 2014-06-11,因此我不想在将来拉任何行,但我想从过去拉出最新的活动行,如果这是有道理的。在此先感谢!
答案 0 :(得分:1)
我更喜欢这类数据结构的有效和结束日期。但你仍然可以得到你想要的东西:
select t1.*
from table1 t1
where t1.date = (select max(t11.date)
from table1 t11
where t11.field1 = t1.field1 and
t11.date <= now()
);
即,以最大日期\小于或等于当前日期来拉取id的记录。