2015-11-03 80 views
0

之间分拣非重复的列我有这样ACCES SQL查询另两个重复列

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。 我想只排序AccNo,cpno组合,其中Echeckid是不同的。排序表看起来像。

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 

如何在access sql中指定该值。

+0

你的意思是排序和过滤? –

回答

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; 
+0

辉煌!像魅力一样工作。 – SLV

0

你可以这样开始:

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

UPDATE:

如果您的接入的版本不支持多列不同您可以CONCAT他们像count(distinct CONCAT(Echeckid, EDescription))或使用min <> max为@GordonLinoff建议

+0

确实允许'独特的Echeckid,EDescription'?也许'独特的CONCAT(Echeckid,EDescription)' – Mihai

+0

@Mihai可能你是对的,我没有手工访问,所以如果它不被支持,你可以连接列获得单个值 –

+0

访问不支持“count(distinct)”。大多数数据库不支持具有多个参数的“count(distinct)”。 –