将两个数据库查询结合在一起

问题描述:

我使用Access数据库跟踪个人年假&病假(AL/SL)余额,因为我累计和使用休假时间。将两个数据库查询结合在一起

我有一个查询,它确定哪些薪酬期符合获得休假的条件,并显示每个期间的休假金额。 (目前,每个为AL/SL每个期间。4小时)

--- qryEarned Leave ------------------------ 
Period  PP  Code Earned 
2/14/2015 03-1 AL  4 
2/14/2015 03-1 SL  4 
2/28/2015 04-1 AL  4 
2/28/2015 04-1 SL  4 
3/14/2015 05-1 AL  4 
3/14/2015 05-1 SL  4 
3/28/2015 06-1 AL  4 
3/28/2015 06-1 SL  4 
4/11/2015 07-1 AL  4 
4/11/2015 07-1 SL  4 
4/25/2015 08-1 AL  4 
4/25/2015 08-1 SL  4 
5/9/2015 09-1 AL  4 
5/9/2015 09-1 SL  4 
5/23/2015 10-1 AL  4 
5/23/2015 10-1 SL  4 
6/6/2015 11-1 AL  4 
6/6/2015 11-1 SL  4 
6/20/2015 12-1 AL  4 
6/20/2015 12-1 SL  4 

第二查询中提取数据表示当我用假。

--- qryUsedLeave --------------------------- 
Period  PP  Code Total 
3/21/2015 05-2 SL  10 
5/16/2015 09-2 AL  8 
5/23/2015 10-1 AL  24 
6/20/2015 12-1 SL  8 

我想要做的就是结合这两个查询的,使得从使用的假的“总”之后的“挣”离开每期列出:

--- Desired Result ------------------------- 
Period  PP  Code Earned Used 
2/14/2015 03-1 AL  4  - 
2/14/2015 03-1 SL  4  - 
2/28/2015 04-1 AL  4  - 
2/28/2015 04-1 SL  4  - 
3/14/2015 05-1 AL  4  - 
3/14/2015 05-1 SL  4  - 
3/21/2015 05-2 SL  -  10 
3/28/2015 06-1 AL  4  - 
3/28/2015 06-1 SL  4  - 
4/11/2015 07-1 AL  4  - 
4/11/2015 07-1 SL  4  - 
4/25/2015 08-1 AL  4  - 
4/25/2015 08-1 SL  4  - 
5/9/2015 09-1 AL  4  - 
5/9/2015 09-1 SL  4  - 
5/16/2015 09-2 AL  -  8 
5/23/2015 10-1 AL  4  24 
5/23/2015 10-1 SL  4  - 
6/6/2015 11-1 AL  4  - 
6/6/2015 11-1 SL  4  - 
6/20/2015 12-1 AL  4  - 
6/20/2015 12-1 SL  4  8 

我能是否将这些查询结合在一起以产生我想要的结果? 我敢肯定,这必须是一件相当简单的事情,但我无法围住它。 (目前我只是其插入所述第一查询到表中的VBA模块,那么读取第二个查询,以更新该行或插入一个新的,并且计算开始/结束余额)

第一步是在PP上创建一个从qryEarned到qryUsed的LEFT JOIN查询。

这会给你qryEarned的所有行与匹配的qryUsed数据,但缺少额外的qryUsed行(例如05-2)。

如果您不能将这些句点添加到“已获得”数据(这将是最简单的),请创建第二个LEFT JOIN查询,这次是另一种方式,并且标准为qryEarned.PP IS NULL。针对不一致或不匹配数据的查询助手可以为您创建这样的查询。
这将只给qryUsed丢失的行。

最后使用UNION查询将两者放在一起。

+0

谢谢!我认为它必须是某种联盟,但'qryEarned.PP IS NULL'测试是逃避我的部分。 –