访问sql查询以在其他两个重复列中排序非重复列

时间:2015-11-03 16:09:23

标签: sql ms-access

我有一张像

这样的表格
AccNo    cpno   Echeckid    EDescription

14D     150101  5004    A and N
14D     150101  5004    A and N
14F     191001  5019    Smart D L M
14F     191001  5019    Smart D L M
177A    011902  1016    P Bm and F
177A    011902  1014    B B - F/R
17D     011902  1016    P Bm and F
17D     011902  1014    B B - F/R
17D9    011901  1014    B B - F/R
17D9    011901  1016    P Bm and F

在上表AccNo中,cpno 177A,011902 & 17D,011902 & 17D9,011901组合具有不同的Echeckid和EDescription。 我试图只对ENckid不同的AccNo,cpno组合进行排序。排序表看起来像。

 AccNo    cpno  Echeckid    EC Description
177A    011902  1016    P Bm and F
177A    011902  1014    B B - F/R
17D     011902  1016    P Bm and F
17D     011902  1014    B B - F/R
17D9    011901  1014    B B - F/R
17D9    011901  1016    P Bm and F

如何在访问sql中指定。

2 个答案:

答案 0 :(得分:0)

你可以从:

开始
select AccNo, cpno
from table
group by AccNo, cpno
having count(distinct Echeckid, EDescription) > 1

更新:

如果您的访问版本不支持多列上的不同,您可以将它们连接起来count(distinct CONCAT(Echeckid, EDescription))或使用min <> max作为@GordonLinoff建议

答案 1 :(得分:0)

您可以通过执行聚合和加入来过滤行:

select t.*
from t inner join
     (select accno, cpno
      from t
      group by accno, cpno
      having min(echeckid) <> max(echeckid)
     ) as ac
     on t.accno = ac.accno and t.cpno = ac.cpno
order by t.accno, t.cpno;