我有一个5列的表格。我需要使用前3列查找重复的值。
这里是我尝试使用的脚本。
select
count ([Tracking id] as [Count],
[Hierarchy],
[Requirement ID],
[Tracking ID2],
[Status]
From
[table 1]
group by
[Hierarchy],
[Requirement ID],
[Tracking ID2],
[Status]
having count ([Tracking id]) > 1
显然,这无法工作,因为您无法将[Tracking ID2]和[Status]分组。
我需要一种可以在MS Access中工作的解决方法。
您可以使用subquery
实现这一目标
select
[Tracking id],
[Hierarchy],
[Requirement ID],
[Tracking ID2],
[Status]
from
[table 1]
where [Tracking id] in (
select
[Tracking id]
From
[table 1]
group by
[Tracking id]
having count ([Tracking id]) > 1)
或
where exists (
select
1
From
[table 1]
group by
[Tracking id]
having count ([Tracking id]) > 1)
包括count(),这是选项之一,使用join
select
t1.ct,
t1.[Tracking id],
[Hierarchy],
[Requirement ID],
[Tracking ID2],
[Status]
from [table 1] t
inner join
(select
[Tracking id],
count(1) as ct
from [table 1]
group by [Tracking id]
having count ([Tracking id]) > 1)) as t1 on t1.[Tracking id] = t.[Tracking id]
您似乎想要:
select [Hierarchy], [Requirement ID], min([Tracking ID2]) as [Tracking ID2], min([Status]) as status
From [table 1]
group by [Hierarchy], [Requirement ID]
having count(*) > 1;
[status
不应在GROUP BY
子句中。