求一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
......


谢谢!
...全文
145 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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)

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧