有一表如下
table1id     tempDM
1        3
1        4
2        4
2        5id号为1时 tempDM是(3、4)
id号为2时 tempDM是(4、5)
我如何取得id不同值,它们tempDM的交集?也就是(4)谢谢

解决方案 »

  1.   

    select a.id,  a.tempDM from t1 a, t1 b where a.id<>b.id and a.tempDM = b.tempDM
      

  2.   

    aiirii(ari-爱的眼睛)好像id号多了后就不行了
    id     tempDM
    1        3
    1        4
    2        4
    2        5
    3        5结果就不对了
      

  3.   

    select distinct a.id,a.tempDM,b.id from 
    (select * from t1 where id=1) a,
    (select * from t1 where id=2) b 
    where a.id<>b.id and a.tempDM = b.tempDM
      

  4.   

    Intersect
    返回两个输入集合的交集,可以选择保留重复项。 语法
    Intersect(&laquo;Set1&raquo;, &laquo;Set2&raquo;[, ALL])注释
    此函数返回 &laquo;Set1&raquo; 和 &laquo;Set2&raquo; 的交集。根据默认设置,在相交之前先删除两个集合中的重复项。 可选的 ALL 保留重复项。ALL 有几种工作方式。算法是:不重复的元素照常相交。对于 &laquo;Set1&raquo; 中的每个重复项,将其与 &laquo;Set2&raquo; 中的重复项相匹配,如果存在匹配的项,则在交集中保留匹配的重复项。示例Intersect({[1994], [1995], [1996]}, {[1995], [1996], [1997]})返回集合 {[1995], [1996]}