A 表
IDM    DM       JC
100    1001     399
100    100      302
200    200      393
200    234      400B 表
DM       CS
1001      1
100       1
1001      2
200       3
200       4
234       3
234       4
要提的数据是:    
IDM 相同的  DM   在B表里面 应该 对应的 cs 一样。  即 一个dm 如果有这个cs 那么 另一个 相同 idm 的 dm 也应该有 这个 相同的cs   。如果没有就提出来 
上面的结果 为
dm        cs
 100       2

解决方案 »

  1.   

     
     看来貌似偶还算清醒的哇 lz意思应该是根据IDM分组  然后查询到每组的DM 然后每个DM在B表中对应的CS值要相同  排序看下
    --分组后的表A
    IDM DM
    100 1001,100
    200 200 ,234--按表A分组后对应的表B
    DM    CS
    1001  1
    100   11001  2  --1001的cs值为2而100没有对应cs=2 200   3  
    234   3  200   4
    234   4
      

  2.   

    哎 。  我也说的不是很清楚。   就是 idm 相同的 dm    b 表里面 要存在一样 的cs  记录。 如果没有 就提出来      如 100 1001 
    100 100  那么 b表的 里面就应该是这样的1001 1
    100 1
    1001 2
    100   2 
    而 B表中无   
    100   2 
    所以需要提出来。 这个数据是 B表中 缺的。  
     
      

  3.   

    有个思路 不知道可行不 先查出IDM,DM,CS  然后按照IDM分组 查询出每组中数量单一的CS包括DM 然后再根据这个DM在A表中查询出该组的其他DM并赋上CS值 
      

  4.   

    SELECT T.IDM,T.CS
    FROM
    (select DISTINCT a.idm,b.cs from a join b on a.dm=b.dm) T
    JOIN A ON A.IDM=T.IDM
    LEFT JOIN B ON A.DM=B.DM AND T.CS=B.CS
    WHERE B.DM IS NULL/**
    IDM         CS
    ----------- -----------
    100         2(1 行受影响)
    **/
      

  5.   

    select a.idm,b.cs count(*)
    from
     (select * from a 
      where idm in 
                (select idm from a group by idm having count(*)>1)
      ) a
     rightjoin
     (select * from b) b
     on a.dm=b.dm
     where a.dm is not null
    group by  a.idm,b.cs
    having count(*)<>2