求一SQL统计语句。。。。。。

littlefat 2004-06-07 02:58:43
简化的数据样本内容如下:

RepID InputDate
8389 2004-06-03 16:42:37.000
8388 2004-06-03 15:32:17.000
8387 2004-06-03 15:27:57.000
8386 2004-06-03 15:22:26.000
8385 2004-06-03 15:21:20.000
8384 2004-06-03 15:19:22.000

8271 2004-06-02 09:39:14.000
8270 2004-06-02 09:24:18.000
8269 2004-06-02 09:18:56.000
8268 2004-06-02 09:16:04.000

8240 2004-06-01 14:38:35.000
8239 2004-06-01 14:37:53.000
8238 2004-06-01 14:14:16.000
8237 2004-06-01 14:04:12.000
8236 2004-06-01 14:01:37.000
8234 2004-06-01 13:59:15.000
8233 2004-06-01 13:55:05.000

要求统计指定月份每一天RepID的数量,查询结果类似下面:

InputDate Amount
2004-06-01 7
2004-06-02 4
2004-06-03 6
......


谢谢!
...全文
124 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
littlefat 2004-06-07
谢谢 pengdali大侠!

查询结果如下(加入了Order by):

InputDate Amount
2004-06-07 49
2004-06-04 49
2004-06-03 51
2004-06-02 79
2004-06-01 64
2004-05-31 68
2004-05-28 28
2004-05-27 68


很好!但是我有还有几个问题麻烦解答一下:
①请解释一下CONVERT(char(10),InputDate,120)中的“120”是什么意思?
②您的第一个回复的语句可以执行,但是第二个查询没有结果(返回是空的)。
③我的数据样本是简化了的,实际的每天产生的数据要多得多。我想提高查询的速度,但是SQL的优化原则告诉我,不要在Where的等号在左边进行运算,有没有更高效的方法呢?

谢谢!

分数等一下马上送出!
回复
pengdali 2004-06-07
指定1月份:

select CONVERT(char(10),InputDate,120) InputDate,sum(1) Amount from 你的表 where CONVERT(char(5),InputDate,120)='2004-01' group by CONVERT(char(10),InputDate,120)
回复
pengdali 2004-06-07
select CONVERT(char(10),InputDate,120) InputDate,sum(1) Amount from 你的表 group by CONVERT(char(10),InputDate,120)
回复
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2004-06-07 02:58
社区公告
暂无公告