在Access中查找重复项,以超过2列为基础和结果

时间:2013-07-17 09:00:31

标签: sql ms-access vb6

我有一个包含11列的访问表。

  • PeriodYear
  • PeriodCycle
  • PeriodZone
  • PHSRCode
  • 名字
  • PRC
  • HCPType
  • 机构

我想找到重复的条目,使用姓氏名字机构作为查找重复项的基础。

示例表:

    PeriodYear  PeriodCycle  PeriodZone  PHSRCode  Lastname  Firstname  PRC  Specialty  HCPType  Class  Institution

    2013        1            1           SF1-01    Almeda    Sancho     111  GP         CON      A      PGH
    2013        1            2           SF1-01    Almeda    Sancho     111  GP         CON      A      LPDH
    2013        1            3           SF1-01    Almeda    Sancho     222  GP         CON      A      PGH

结果应为:

    PeriodYear  PeriodCycle  PeriodZone  PHSRCode  Lastname  Firstname  PRC  Specialty  HCPType  Class  Institution

    2013        1            1           SF1-01    Almeda    Sancho     111  GP         CON      A      PGH
    2013        1            3           SF1-01    Almeda    Sancho     222  GP         CON      A      PGH

查询将基于字段 PeriodYear PeriodCycle PHSRCode ,这些字段将来自变量。

这可能吗?

1 个答案:

答案 0 :(得分:2)

首先创建一个“指针”查询,确定所有具有欺骗的记录:

SELECT LastName, FirstName, Institution, Sum(1) as CNT
FROM MyTableName
GROUP BY LastName, FirstName, Institution
HAVING (Sum(1) > 1)

调用Query1或其他东西。

然后在这些字段上将Query1连接到MyTableName,并使用WHERE子句仅根据变量保留所需的数据:

SELECT B.*
FROM Query1 A
LEFT JOIN MyTableName B
ON A.LastName = B.LastName 
AND A.FirstName = B.FirstName
AND A.Institution = B.Institution
WHERE B.PeriodYear = Forms!frmMyForm!txtPeriodYear
AND B.PeriodCycle = Forms!frmMyForm!txtPeriodCycle
AND B.PHSRCode = Forms!frmMyForm!txtPHSRCode

你显然必须做一些调整,但这应该给你正确的想法。