delete from 定额_炉料线材质参数 a where (a.造型中心码,a.材质类别) in (select 造型中心码,材质类别 from 定额_炉料线材质参数 group by 造型中心码,材质类别 having count(*) > 1)
按照网上写的是将表定额_炉料线材质参数里面 造型中心码和材质类别有重复大于1的记录全部删掉,但是运行老是说第一行的 a 有错误,请问那里错了呢? 

解决方案 »

  1.   

    where a.造型中心码 in (select 造型中心码 from 定额_炉料线材质参数 group by 造型中心码,材质类别 having count(*) > 1
    and
    where a.材质类别 in (select 材质类别 from 定额_炉料线材质参数 group by 造型中心码,材质类别 having count(*) > 1
      

  2.   

    只能是a in(1,2,3,4)
    b in ('ddd','eee','fff')
    不能(a,b) in ( 1,2,3,4,'ddd','eee')
      

  3.   

    create table 定额_炉料线材质参数(造型中心码 int,材质类别 nvarchar(10),othercolumn int)
    insert into 定额_炉料线材质参数 select 1,'A',100
    insert into 定额_炉料线材质参数 select 1,'A',150
    insert into 定额_炉料线材质参数 select 2,'B',20
    go
    delete 定额_炉料线材质参数 from 定额_炉料线材质参数 a 
    where exists(select 1 from 定额_炉料线材质参数 where 造型中心码=a.造型中心码 and 材质类别=a.材质类别 group by 造型中心码,材质类别 having count(*) > 1)
    go
    select * from  定额_炉料线材质参数
    go
    drop table  定额_炉料线材质参数
    /*
    造型中心码       材质类别       othercolumn
    ----------- ---------- -----------
    2           B          20(1 行受影响)*/
      

  4.   

    delete from 定额_炉料线材质参数 a 
    where (a.造型中心码,a.材质类别) in
    (select 造型中心码,材质类别 from 定额_炉料线材质参数 group by 造型中心码,材质类别 having count(*)>1)
    and 生铁种类 not in (select min(生铁种类) from 定额_炉料线材质参数 group by 造型中心码,材质类别 having count(*)>1)表一共就三个字段 造型中心码,材质类别,生铁种类
      

  5.   

    try!
    delete from 定额_炉料线材质参数 a 
    where not exists (select 1 from 定额_炉料线材质参数 b where a.造型中心码=b.造型中心码 and a.材质类别=b.材质类别 and a.生铁种类>b.生铁种类)