查询语句如下:
select  * from love_vote l
having sum(l.Votecount)=max(select sum(Votecount) from love_vote
where (Votecontent is null) and VoteId=l.id)
order by ID desc
想实现对Votecount字段先按id字段分组求和,然后再求结果的最大值。可运行中报错,max函数中的表达式好像不能是子查询。各位弟兄看看应该怎样做?急!!

解决方案 »

  1.   

    select id,MAX(sum(Votecount)) from love_vote
    group by id
    order by ID desc
      

  2.   

    create table #t
    (
     id int,
     num int
    )insert into #t
    select 1,3 union
    select 2,5 union
    select 1,6 union
    select 2,11select id,max(num) from 
    (select id,sum(num) as num from #t
    group by id)a
    group by iddrop table #t
    go--结果
    1 9
    2 16
      

  3.   

    如果只是一个最大值,语句如下:
    select max(num) from 
    (select id,sum(num) as num from #t
    group by id)a
      

  4.   

    vfp_system(菜鸟一个):
    报错:不能对包含聚合或子查询的表达式执行聚合函数。
      

  5.   

    SELECT TOP 1 id, SUM(num) AS a
    FROM t
    GROUP BY id
    ORDER BY a DESC
      

  6.   

    SELECT a.*,b.ms FROM love_vote a
    INNER JOIN
    (SELECT MAX(sv) ms,VoteID FROM 
    (SELECT SUM(VoteCount) sv,VoteId FROM love_vote GROUP BY VoteId) x
    GROUP BY VoteID
    ) b
    ON a.VoteId=b.VoteId
      

  7.   

    上面写错了SELECT a.*,b.ms FROM love_vote a
    INNER JOIN
    (SELECT sv,VoteID FROM
    (SELECT SUM(VoteCount) sv,VoteId FROM love_vote GROUP BY VoteId) a
    INNER JOIN
    (SELECT MAX(sv) ms FROM
    (SELECT SUM(VoteCount) sv,VoteId FROM love_vote GROUP BY VoteId) x
    ) b
    ON a.sv=b.ms
    ) b
    ON a.VoteId=b.VoteId
      

  8.   

    SELECT a.*,b.sv FROM love_vote a
    INNER JOIN
    (SELECT sv,VoteID FROM
    (SELECT SUM(VoteCount) sv,VoteId FROM love_vote GROUP BY VoteId) a
    INNER JOIN
    (SELECT MAX(sv) ms FROM
    (SELECT SUM(VoteCount) sv,VoteId FROM love_vote GROUP BY VoteId) x
    ) b
    ON a.sv=b.ms
    ) b
    ON a.VoteId=b.VoteId