ACCESS SQL 收集

1、快速查询b表中在a表中不存在的数据(right join 可以查询出具b表的全部数据,如果a.partsno! = b.partno,则查询的记录为b的数据&a的数据为null
     SELECT b.*
     FROM parts AS a RIGHT JOIN TMCI_GB_PNO AS b ON a.partsno = b.partno
     WHERE a.partsno is null;

2、查找重复项:

    SELECT *
    FROM parts
    WHERE partsno in( SELECT First(parts.partsno) AS [partsno]
    FROM parts
    GROUP BY parts.partsno
    HAVING Count(parts.partsno)>1);

   SELECT a.*
   FROM parts AS a INNER JOIN (   SELECT First(parts.partsno) AS [partsno], Count(parts.partsno) AS NumberOfDups
   FROM parts
   GROUP BY parts.partsno
   HAVING Count(parts.partsno)>1)  AS b ON a.partsno=b.partsno;

3、删除重复项:

    (1)如果是完成相同的记录,没有主键。就添加一列id作为主键,在执行如下语句

     DELETE *
     FROM parts where partsno in  (select partsno from parts group by partsno having count(partsno)>1)  
    and id not in (select max(id) from  parts group by partsno having count(partsno)>1)

     (2)
     不要用这种方式:会产生大量卡迪尔积

    DELETE *
    FROM parts
    WHERE id not in  (select min(id) from parts a  group by a.partsno);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值