我的Firebird数据库中有两个表。第一个表称为LEDGER,它显示我的交易详细信息,包括交易日期(yyyy / mm / dd)。第二个表称为PERIODS,由以下字段组成:
我想使用LEDGER表中的日期从PERIODS表中查找相应的期间,并基于此表将两个表连接起来。简而言之,我想显示分类帐表格每一行的时间段,以帮助我准备合并报表。
下面是PERIODS表的示例:
什么是最好的方法?
如果我是开发人员,则可以将期间添加到分类帐表中,并在事务级别填充该期间,但不幸的是现在为时已晚。
任何帮助将不胜感激。
答案 0 :(得分:2)
您可以只使用join
:
select l.*, p.per
from ledger l left join
periods p
on l.date_of_transaction >= p.start_date and
l.date_of_transaction <= p.end_date
答案 1 :(得分:0)
使用以下查询。请更改列名,我已经提供了列名作为示例。
select P.PER, L.* from LEDGER L
inner join PERIODS P
on (L.date_of_transaction = P.start_date);
select P.PER, L.* from LEDGER L
inner join PERIODS P
on (L.date_of_transaction between P.start_date);