用group by  好象是有这个限制

解决方案 »

  1.   

    SELECT A,B,C FROM T1 GROUP BY A,这样会提示错误而改成“SELECT A,B,C FROM T1 GROUP BY A,B,C”就不会有错误,但是就不合要求了。
    我只想根据属性A进行分组应该怎么办呢?是不是必须要用子查询呢
      

  2.   

    SELECT A,B,C FROM T1 GROUP BY A,这样会提示错误而改成“SELECT A,B,C FROM T1 GROUP BY A,B,C”就不会有错误,但是就不合要求了。
    我只想根据属性A进行分组应该怎么办呢?是不是必须要用子查询呢
    ---------------------------------------------------------------------
    如果不要用到max(),sum()之類的函數  可以用distinct
    用group by 的話要那樣的結果隻有用表聯結查詢。
      

  3.   

    確實不太好寫,建議加一個唯一標識的字段:
    alter table T1 add [id] int identity(1,1)
    select A,B,C from T1 a where [id]=(select min([id]) from T1 where a.A=A)
      

  4.   

    哦,这种查询可以用WITH子句实现
    SQL SERVER2000支持WITH子句吗?
      

  5.   

    我想了一下,这种问题可以用视图实现,但是一般的视图要手动删除(DROP VIEW),而我这个视图又不要求长期保存,因此用WITH建立临时视图更好,但是我在SQL SERVER2000中用WITH总是要出错,不知是我的语法错还是SQLSERVER2000不支持WITH子句(WITH子句是SQL-99中引入的)
    下面是我的查询语句:
    WITH bookbag([ID],[NAME],[PRESS]) 
    AS
    SELECT book.BID,book.BName,book.BPress
    FROM bookWITH amount([BID],[COUNT])
    AS
    SELECT BID,count(a.BID)
    FROM buybag a 
    WHERE UID='bill' AND EXISTS (SELECT * FROM buybag b WHERE a.BID=b.BID ) 
    GROUP BY a.BIDSELECT bookbag.[ID],bookbag.[NAME],book.PRESS,amount.[COUNT]
    FROM bookbag,amount
    WHERE bookbag.[ID]=amount.[BID]