本帖最后由 tg01 于 2012-08-03 11:01:59 编辑

解决方案 »

  1.   

    根据你的要求,你的SQL语句以及结果是正确的
      

  2.   


    select * From 
    (
      select min(AA) as minAA,BB from Table_1  group by BB 
     ) a
     where exists (select 1 From Table_1 where bb=a.bb and aa=a.minAA and cc='Z')
     
      

  3.   

    我的要求是:“以BB分组后,最小值AA的CC必须是Z才列出来。”
    而现在查出的结果是““以BB分组后,CC为Z的最小值AA。”
      

  4.   

    select * from 
    (select min(AA) as minAA from Table_1  group by BB )a, Table_1 b
    where a.minAA =b.AA and b.cc='Z'
      

  5.   

    错了,掉了字段
    select * from  
    (select min(AA) as minAA,BB from Table_1 group by BB )a, Table_1 b
    where a.minAA =b.AA and b.cc='Z'
      

  6.   

    因为你按BB分组了 所以根据BB分出来3组 每组一个最小值
      

  7.   

    --> 测试数据:[tb]
    IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
    GO 
    CREATE TABLE [tb]([aa] INT,[bb] VARCHAR(1),[cc] VARCHAR(1))
    INSERT [tb]
    SELECT 1,'a','z' UNION ALL
    SELECT 2,'a','x' UNION ALL
    SELECT 3,'a','z' UNION ALL
    SELECT 4,'b','x' UNION ALL
    SELECT 5,'b','z' UNION ALL
    SELECT 6,'b','x' UNION ALL
    SELECT 7,'c','x' UNION ALL
    SELECT 8,'c','z' UNION ALL
    SELECT 9,'c','x'
    --------------开始查询--------------------------SELECT * FROM [tb] AS a WHERE 
    NOT EXISTS 
    (SELECT 1 FROM tb WHERE [bb]=a.[bb] AND [aa]<a.[aa]
    )
    AND [cc]='z'
    ----------------结果----------------------------
    /* 
    aa          bb   cc
    ----------- ---- ----
    1           a    z(1 行受影响)
    */