我有两张桌子。表-A填充了事务数据。表B是给定特定周的费率的参考表。我想根据表B中列出的一周内的日期,将表B中的比率从表B中获得。我尝试了多种查询技术,并且所有这些技术都落在了他们的脸上。任何帮助将不胜感激。
Table B
Start_Date End_Date Rate
12/30/2013 1/5/2014 $1.20
1/6/2014 1/12/2014 $1.25
1/13/2014 1/19/2014 $2.22
1/20/2014 1/26/2014 $2.23
1/27/2014 2/2/2014 $2.11
Table A
ID Date Rate
1 1/1/2014
2 1/11/2014
3 1/21/2014
4 1/10/2014
5 1/15/2014
6 1/22/2014
7 1/20/2014
8 1/3/2014
9 1/2/2014
10 1/4/2014
答案 0 :(得分:0)
试试这个:
select b.rate from a,b where a.date <= b.end_date and a.date >= b.start.date
OR
select b.rate from a,b where a.date between b.start_date and b.end_date
答案 1 :(得分:0)
一些事情。首先,我假设您在B的第一次约会实际上是12/30/13。
然后,date是一个保留字,所以它在表A中不是一个好的列名。我在我的例子中将它重命名为DateA。
最后,这是一个返回该日期费率的查询。它不会更新表A,但它应该为您提供所需的操作:
SELECT [Table B].Rate, [Table A].DateA
FROM [Table A], [Table B]
WHERE ((([Table A].DateA) Between [start_date] And [end_date]));
答案 2 :(得分:0)
UPDATE A, B SET A.Rate = [B].[Rate]
WHERE (([A].[DT] Between [B].[StartDate] And [B].[EndDate]));
我将A.Date
更改为A.DT
,因为Date
是Access中的保留字。
答案 3 :(得分:-1)
您是否考虑过通过代码执行此操作? My Access术语有点生疏,但我相信它将基于表A(Transact-SQL中的“光标”)称为“打开数据集”。然后你可以遍历它并对每一行进行SQL搜索。