注册 登录
编程论坛 SQL Server论坛

求一存储过程的写法

qna363 发布于 2008-01-23 09:25, 1124 次点击
有一张表如下:
cdate   cname
2007-1-1   语文
2007-1-1   数学
2007-1-1   英语
2007-1-2   语文
2007-2-1   语文
2007-2-1   语文
2007-2-1   数学
2007-2-10   数学

现在想写个存储过程得到如下的表:
月份     计数   名称
2007-1   2    语文
2007-1   1    数学
2007-1   1    英语
2007-2   2    语文
2007-2   2    数学
2007-2   0    英语


请问各位大侠,这个应该怎么写.谢谢啦!

[[italic] 本帖最后由 qna363 于 2008-1-23 14:31 编辑 [/italic]]
4 回复
#2
purana2008-01-23 11:58
select convert(char(7),cdate,120) 月份
      ,count(*) 计数
      ,名称
from tb
group by convert(char(7),cdate,120) ,名称
#3
qna3632008-01-23 14:23
谢谢版主大人,不过这样子的话有点小问题,就是如果一个名称当月计数是0的话,结果是没有显示的
月份     计数   名称
2007-1   2    语文
2007-1   1    数学
2007-1   1    英语
2007-2   2    语文
2007-2   2    数学
2007-2   0    英语   /这行将不会显示出来

加上isnull函数判断,结果也还是如上面一样.

[[italic] 本帖最后由 qna363 于 2008-1-23 14:31 编辑 [/italic]]
#4
西风独自凉2008-01-23 15:31
2月本來就沒有英語記錄
#5
qna3632008-01-23 17:49
是啊,如果记录为空是否能让它显示为0呢?
1