我有这个:
HISTORY
the_date amount
2014-02-27 200
2015-02-26 2000
VALUE
the_date interest
2010-02-10 2
2015-01-01 3
有可能以某种方式提出这样的问题,例如,history.the_date大于或等于value的最大可能值.the_date?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void main () {
string line;
ifstream myfile ("example.txt"); //change this to your file's name
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
else
cout << "Unable to open file";
}
我需要将正确的兴趣与金额配对!
答案 0 :(得分:0)
在ON
之后使用连接条件不在where子句...
SELECT * FROM history JOIN (select max(value.the_date) as d from value) as x on history.the_date >= x.d
WHERE 1=1
答案 1 :(得分:0)
据推测,你想要这个:
select h.*
from history h
where h.the_date >= (select max(v.the_date) from value v);
答案 2 :(得分:0)
所以value.the_date
是利息有效的日期。利息2在2010-02-10至2014-12-31期间有效,因为自2015-01-01以来新利息3适用。
要获得当前对日期的兴趣,您可以使用子查询,在该子查询中选择具有有效起始日期的所有利息记录,并且只保留最新的:
select
the_date,
amount,
(
select v.interest
from value v
where v.the_date <= h.the_date
order by v.the_date desc
limit 1
) as interest
from history h;