使用MS Access.我很抱歉标题含糊不清 - 我只是不知道如何描述这是什么类型的问题,我只知道我需要加入两个表或查询来解决它.
我有一个OrgHistory表格,显示每个人(按ID)在某个特定日期加入的组织(您一次只能成为一个组织的成员):
Person | Org | JoinDate
-----------------------
123 | abc | 3/2/2011
456 | abc | 4/23/1925
123 | def | 5/12/2011
Run Code Online (Sandbox Code Playgroud)
我也有一张Activities桌子:
Person | Activity | ActivityDate
--------------------------------
123 | eat | 3/23/2011
123 | sleep | 6/25/2011
456 | walk | 7/20/1985
Run Code Online (Sandbox Code Playgroud)
我想在每个记录中找出Activities该人在活动当天所属的组织.我想这可能涉及将JoinDate值转换为一组范围并匹配ActivityDate到适当的间隔,但在这种情况下我对如何设计查询有点困惑 - 如何创建范围并匹配单个值一个范围?
我认为partition()不会起作用,因为我不是想JoinDate在已知数量的桶中保存多个值.
我不能保证这是最有效的方法,但它可以在Access中使用您提供的测试数据:
SELECT a.person, a.activity,
(
SELECT TOP 1 org
FROM orghistory AS o
WHERE o.person = a.person
AND o.joindate <= a.activitydate
ORDER
BY o.joindate DESC
) AS Org
FROM activities AS a;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
269 次 |
| 最近记录: |