+ -
当前位置:首页 → 问答吧 → sql 统计一周的

sql 统计一周的

时间:2011-12-26

来源:互联网


create table dd(id varchar(8),time datetime,money money,job varchar(100))
insert into dd select 'bfbumen01','2011-03-14','12454.214','电子商务'
union all
 select 'bfbumen01','2011-03-14','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-15','12454.214','电子商务' union all
 select 'bfbumen03','2011-03-15','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-16','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-16','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-17','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-17','12454.214','电子商务' union all
 select 'bfbumen03','2011-03-17','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-18','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-18','12454.214','电子商务' union all
 select 'bfbumen03','2011-03-19','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-19','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-19','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-20','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-21','12454.214','电子商务' union all
 select 'bfbumen03','2011-03-21','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-22','12454.214','电子商务' union all
 select 'bfbumen02','2011-03-22','12454.214' ,'电子商务'union all
 select 'bfbumen03','2011-03-22','12454.214','电子商务' union all
 select 'bfbumen01','2011-03-18','12454.214','电子商务' union all 
 有很多岗位,id 为员工工号,想得到的结果:以每星期一为一周统计时间,(统计人数用 count(*) 想要的结果(结果只是个例子,不是正确的数据):
  人数 时间 钱 岗位 
  23 2011-03-14 22152252.54 电子商务
  23 2011-03-21 22152252.54 电子商务
  23 2011-03-28 22152252.54 电子商务
  。。。
 

作者: zhenshz   发布时间: 2011-12-26

SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job

作者: Limpire   发布时间: 2011-12-26

引用 1 楼 limpire 的回复:
SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job


膜拜一下大牛。

作者: fredrickhu   发布时间: 2011-12-26

顺便问下 楼主准备以哪个时间作为统计开始时间

作者: fredrickhu   发布时间: 2011-12-26

引用 1 楼 limpire 的回复:
SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job

好久没有看到小楼出来回帖了...

作者: maco_wang   发布时间: 2011-12-26

引用 2 楼 fredrickhu 的回复:

引用 1 楼 limpire 的回复:
SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job


膜拜一下大牛。


^_^我可不是大牛

回复叶子:600w之列,每天登录一下,强制记忆新密码,记忆力衰退了,呵呵。

作者: Limpire   发布时间: 2011-12-26

引用 2 楼 fredrickhu 的回复:
引用 1 楼 limpire 的回复:
SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job


膜拜一下大牛。

0.0

作者: SQL77   发布时间: 2011-12-26

引用 5 楼 limpire 的回复:
引用 2 楼 fredrickhu 的回复:

引用 1 楼 limpire 的回复:
SQL code
select count(1), min(time), sum(money), job from dd group by datediff(day,0,time)/7, job


膜拜一下大牛。


^_^我可不是大牛

回复叶子:600w之列,每天登录一下,强制记忆……

都是CSDN惹的祸//

作者: SQL77   发布时间: 2011-12-26

引用 3 楼 fredrickhu 的回复:
顺便问下 楼主准备以哪个时间作为统计开始时间



我要的结果我写在上面了,就是以每周的周一为界,统计上周的数据,貌似问答都不是我想要的结果,我要统计前10周和前10个月的数据

作者: zhenshz   发布时间: 2011-12-26

1搂真牛。一针见血啊。。

作者: dielianhua_chenlong   发布时间: 2011-12-26

为什么你们都觉的可以,可是我数据库运行出来的却不是这样的,他会出现两个多余的时间,他会检索到其中最小的,还有今天的数据,这两天都是错的,中间才是对的,可是就是会出现这种情况,怎么回事,而且我有限制了是10周,可是都没出现10周的数据?

作者: zhenshz   发布时间: 2011-12-26