是不是会有一个函数能实现 这种功能呢,
我这样用是不是不行呢
select max(字段1+字段2+字段3) as n,id from 表名 where id=4
我怎么也实现 不了,不能取正确字段

解决方案 »

  1.   

    噢,后面还有个group by id
    语句是这样写的,
    select max(字段1+字段2+字段3) as n,id from 表名 where id=4 group id
    不能求到正确的值,运行是没有问题
      

  2.   

    select max(SUM(字段1+字段2+字段3)) as n,id from 表名 where id=4 group id
      

  3.   

    不行呢,出现下面的错误:
    Microsoft OLE DB Provider for SQL Server (0x80040E14)
    不能对包含聚合或子查询的表达式执行聚合函数。
      

  4.   

    更正:
    select top 1 SUM(字段1+字段2+字段3) as max,id 
    from A 
    group by id
    order by SUM(字段1+字段2+字段3) desc
      

  5.   

    正解:select max(XXX.sum),c2 from 
    (
    select  (字段1+字段2+字段3) as sum ,id
    from 表名 
    ) as XXX
    group by id
      

  6.   

    解决了,gc_ding(E.T)的解答非常到位,只是有一点不明白,明明是求最大值,但上面都是求和的函数,是不是取出的最大值就是排列(order by )  的第一个
      

  7.   

    不能用求和,因为有group by id会把所有同一ID的若干行加起来,这样就不存在
    行最大值了(只有一个值)
    见下:
    sum  id
    2     4
    3     4
    4     4
    1     5
    2     5    
    3     5结果为
    sum   id
    4     4
    3     5
    而用SUM的结果为
    sum   id
    9      4    -- 2+3+4
    6      5    -- 1+2+3