首页 新闻 会员 周边 捐助

Sql Server 2005中如何实现如下分组统计

0
悬赏园豆:5 [已解决问题] 解决于 2013-02-20 16:38

表中数据:

   ProCD    ProNM

     001    a

     001    a

     001        b

     002        b

     003        c

     004        c

     005        d

 

做完统计后:

  ProCD   ProNM

      001    a

      001    a

      小计       2

      001        b

      002        b

      小计        2

      003        c

      004        c

      小计        2

      005        d

      小计        1

     总计     7

这样的 sql 语句如何实现?哪位大侠指点一下

LetGo的主页 LetGo | 初学一级 | 园豆:189
提问于:2012-06-28 21:53
< >
分享
最佳答案
0

http://www.cnblogs.com/downmoon/archive/2012/04/06/2433988.html

 SQL Server 2008的解决方案,也许对你有帮助!

收获园豆:5
邀月 | 高人七级 |园豆:25475 | 2012-06-29 09:00
其他回答(3)
0

一条SQL是解决不了的。需要多条来实现,最好通过临时表处理。

无之无 | 园豆:5095 (大侠五级) | 2012-06-28 22:19
0

搞几个表变量吧!要不直接把数据取出来,然后用Linq搞!!

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-06-29 07:53
0


select ProCD=case when isnull(ProCD,'')='' Then '小计' else ProCD end,ProNM
from (
select rw=row_number()over(partition by ProNM order by ProCD),ProNMList=ProNM,ProCD,ProNM from emp
union all
SELECT rw=999999999999,ProNMList=ProNM,ProCD='',ProNM=cast(COUNT(1) as nvarchar(20)) FROM emp GROUP BY ProNM

union all

SELECT rw=9999999999999999,ProNMList='zzzzzzzzzzzzzzzzzzz',ProCD='',ProNM=cast(COUNT(1) as nvarchar(20)) FROM emp

) a
order by ProNMlist,rw

Shannon | 园豆:611 (小虾三级) | 2012-07-02 16:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册