我有很多记录,搜索必须根据“有效来自”和“公司”字段提供唯一结果。
以下是4条记录的示例:
RECORD NO. COMPANY VALID_FROM VALID_TO VALUE
1 BANCO CENTRAL 10/11/11 31/12/11 123.45
2 BANCO CENTRAL 20/11/11 31/12/11 120.34
3 EXTERIOR BANK 20/11/11 31/12/11 115.45
4 BANCO CENTRAL 25/11/11 31/12/11 115.45
根据当前日期,我只需要显示每家公司的一份结果。 例如,如果今天是26/11/11,则查询将显示记录3和4(公司Banco Central的记录4,具有稍后的'有效期'日期,替换先前的记录(1和2)。 ,作为唯一的一个,也会表现出来。
如果今天是15/11/11,那么它应该显示第一条记录(因为记录2,3和4的值的有效期是未来)
如果今天是20/11/11,那么它将显示记录2和3
如果有人能告诉我SQL查询应该是什么样子将非常感激
答案 0 :(得分:1)
您可以加入子查询:
select
*
from
banks b1
inner join (select company, max(fromdate) as maxdate from banks where fromdate <= now()) b2 on
b1.company = b2.company
and b1.fromdate = b2.maxdate