MS Access-通过连接某些列查找重复的值

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

我有一个5列的表格。我需要使用前3列查找重复的值。

这是我的数据集的一个示例:

enter image description here

这是我需要的输出:

enter image description here

这是我尝试使用的脚本:

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中工作的解决方法。

sql ms-access ms-access-2010
2个回答
1
投票

您可以使用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]

0
投票

您似乎想要:

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子句中。

© www.soinside.com 2019 - 2024. All rights reserved.