SELECT * FROM vw_Journal_Inquiry     group by  level    ORDER BY Seq DESC vw_Journal_Inquiry 是一个视图名称
  level 是视图里一个字段, 我想根据  用户在界面上选择的值(是绑定level这个字段的值) 来进行group by 分组, 现在上面这个SQL执行报错 但我又不想把视图所有字段加进来 想用select * 来进行分组统计 我该怎么写可以实现这个功能??求教谢谢大家!!

解决方案 »

  1.   

    用row_number()over(partition by ) 分组排序再取你需要的数据
      

  2.   

    可以具体点吗  我刚学 thanks
      

  3.   

    后面用了group by  前面就不能用 *号了呀?
      

  4.   


    是啊 用了*就不能用group by 报错了Msg 8120, Level 16, State 1, Line 1
    Column 'vw_Journal_Inquiry.EntityCode' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
      

  5.   

    GROUP BY 前面的select 里面必须是 by后面的列,或是聚合函数。
      

  6.   

    根本不是group by的事情,自己想要什么,和什么时候用group by都没有搞懂,不曾出现统计归类何来的group by 
      

  7.   


    select 
    [level],max(seq) as Seq 
    from vw_Journal_Inquiry 
    group by [level] order by Seq desc 根据页面上选择的值,和你想要的结果,动态拼接SQL 脚本,然后再执行。
      

  8.   

    出現在select 後面的欄位,要麼就要出現在group by 後邊,要麼就要用MAX、MIN之類的聚合函數