我有两个相关的表,其中包含许多基于日期的记录。我只需要选择基于特定日期的有效汇率。
这些是数据示例:
在 HEADERTABLE 上...
ID, PICKUP, DELIVERY, VALIDFROM, VALIDTO, COMMODITY, CARRIER 1, 纽约, 芝加哥, 01-OCT-13,31-OCT-13, 鞋类, DHL 2、纽约、芝加哥、20-OCT-13、31-OCT-13、鞋类、UPS 3、纽约、芝加哥、30-OCT-13、31-OCT-13、鞋类、DHL 4,纽约,芝加哥,30-OCT-13,31-OCT-13,木制品,DHL
在线表上:
ID、HEADERTABLEID、RATEDESC、RATE 2325, 1, 交付, 1000 2354, 2, 交付, 1500 2355, 2, 税, 100 2355, 3, 交付, 1200 2356, 3, 税务, 110 2380, 4, 交付, 1000
因此,通过使用某个日期(下面的日期变量),我只需要显示一个选项。例如,如果 thedate=25-oct-13,则要显示的记录是 Id 2(来自 headertable + 行表中的链接汇率)
如果 thedate=10-oct-13,那么选项 1 就是要显示的选项。
如果 thedate=30-oct-13,那么将显示 2 条记录(Id 3 和 4)(区别是商品)
这是我正在使用的代码(我已经尝试了很多其他代码,但没有运气)但显然缺少一些东西,因为它显示了所有记录。
任何帮助表示赞赏。
SELECT * from schema1.headertable, schema1.linestable
WHERE headertable.Id= linestable.headertableId
AND headertable.Validfrom <= STR_TO_DATE('" & thedate & "','%Y-%m-%d')
AND headertable.Validto >= STR_TO_DATE('" & thedate & "','%Y-%m-%d')
AND headertable.PICKUP LIKE '%NEW YORK%'
AND headertable.DELIVERY LIKE '%CHICAGO%'
ORDER BY headertable.Validfrom DESC, linestable.Id DESC