如何在MS Access中从大于2的记录中选择查询

问题描述 投票:0回答:1

我正在尝试根据 MS Access 中的 ID 和日期从行数超过 2 的行中选择查询。

请指导我

我想将其保留为单个查询。

谢谢

桌子

Absen

身份证 日期 时间 输入输出
5008 24 年 4 月 28 日 08:00
5008 24 年 4 月 28 日 17:00
5009 24 年 4 月 29 日 08:00
5009 24 年 4 月 29 日 17:00
5009 24 年 4 月 29 日 17:00
5010 24 年 4 月 28 日 08:00
5011 24 年 4 月 30 日 08:00
5011 24 年 4 月 30 日 08:00
5011 24 年 4 月 30 日 17:00

桌子

MASTERID

身份证 名称ID 位置ID
5008 A 工作人员
5009 B 工作人员
5010 C 工作人员
5011 D 工作人员

我使用了这样的 SQL 代码结果:

select a.ID, MASTERID.NAMEID, a.DATE, a.TIME, a.INOUT
from ABSEN a INNER JOIN MASTERID ON a.ID = MASTERID.ID
where exists(select 1 from ABSEN a2 where a.ID=a2.ID)
order by a.ID, a.DATE

代码结果

身份证 名称ID 日期 时间 输入输出
5008 A 24 年 4 月 28 日 08:00
5008 A 24 年 4 月 28 日 17:00
5009 B 24 年 4 月 29 日 08:00
5009 B 24 年 4 月 29 日 17:00
5009 B 24 年 4 月 29 日 17:00
5010 C 24 年 4 月 28 日 08:00
5011 D 24 年 4 月 30 日 08:00
5011 D 24 年 4 月 30 日 08:00
5011 D 24 年 4 月 30 日 17:00

所需输出

身份证 名称ID 日期 时间 输入输出
5009 B 24 年 4 月 29 日 08:00
5009 B 24 年 4 月 29 日 17:00
5009 B 24 年 4 月 29 日 17:00
5011 D 24 年 4 月 30 日 08:00
5011 D 24 年 4 月 30 日 08:00
5011 D 24 年 4 月 30 日 17:00
sql ms-access sql-order-by exists
1个回答
0
投票

以下查询应该有效(至少从 ANSI SQL 的角度来看):

SELECT a.ID, b.NAMEID, a.DATE, a.TIME, a.INOUT
FROM ABSEN a
INNER JOIN MASTERID b
    ON a.ID = b.ID
INNER JOIN (
    SELECT ID
    FROM ABSEN
    GROUP BY ID
    HAVING COUNT(*) > 2
) c
     ON c.ID = a.ID
ORDER BY
    a.ID,
    a.DATE;
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.