能不能把你的table也貼出來看看

解决方案 »

  1.   

    有数据库的机子不能上网,table里面数据太多,不是特别方便,见谅了。
    查询分析器里运行的结果是1是正确的,2、3结果完全一样,缺少记录。
      

  2.   

    我觉得你写的第二个查询语句有问题:这两个where语句之间是什么关系?
    select k60.a0102 as 管理单位, count(k60.k6001) as 桥梁总数 from k60              
                       where k60.a0102 in(select 
                                            where a50.a0102 in 
                                               (select a01.a0102 from a01))from a50
                          
                       group by  k60.a0102
                       having count(k60.k6001)>30 
                       order by k60.a0102 desc
    我觉得是不是应该这样呀?不知是否符合你的原意?
      

  3.   

    如果A01与a50之间,a50与k60之间都是一对多的关系,则上述查询结果完全一致。如果其中之一是多对多的关系,则第一条SQL语句记录数多。举例说明如下:
    a01:
    a0102
    ------
    1
    2
    2a50:
    a0102
    ------
    2
    2
    3select a50.a0102 from a50 join a01 on a50.a0102 = a01.a0102
    结果如下:
    --------
    2
    2
    2
    2select a50.a0102 from a50 where a50.a0102 in (select a01.a0102 from a01)
    结果如下:
    -------
    2
    2至于那种正确,则看需求了!