将两个数据库查询结合在一起
问题描述:
我使用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查询将两者放在一起。
谢谢!我认为它必须是某种联盟,但'qryEarned.PP IS NULL'测试是逃避我的部分。 –