首页 新闻 会员 周边

给定开始日期到结束日期,如2015-05-20 至2015-06-20,请大家帮我想想,能否用sql查询得到如下效果的结果集

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-03-17 15:51

下面是业务要求

 

求语句 感谢不尽

问题补充:

其实我想要实现的是 已知的是开始时间 和结束时间 我需要把这期间的所涉及到的天数展现出来。目的是我要知道 张三这个人在1月份有多少天 2月份有多少天 以此类推! 

 

我的数据库是ms sqlserver 2008

Jession.的主页 Jession. | 初学一级 | 园豆:96
提问于:2016-03-09 17:18
< >
分享
所有回答(7)
0

那三个“结束时间+1”啥意思

Ctrl` | 园豆:3317 (老鸟四级) | 2016-03-09 17:29

就是后面会写到条件 所以需要在最后一天上+1

支持(0) 反对(0) Jession. | 园豆:96 (初学一级) | 2016-03-09 20:31
0

看不懂,这个不就是where时间大于多少小于多少吗?

女子100 | 园豆:85 (初学一级) | 2016-03-09 17:31

呵呵 不是那么简单的 注意看需求表

支持(0) 反对(0) Jession. | 园豆:96 (初学一级) | 2016-03-09 20:32
0

这种东西用代码两下就搞定了.干嘛非得给数据库增加负担..

吴瑞祥 | 园豆:29449 (高人七级) | 2016-03-09 17:47
0

sql server我不知道怎么实现,但是我知道oracle怎么实现

  select to_date('2016-01', 'yyyy-mm') + level - 1  from dual
  connect by to_date('2016-01', 'yyyy-mm') + level - 1 < to_date('2016-02-02', 'yyyy-mm-dd')

 

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-09 17:57

oracle 不会!!!

支持(0) 反对(0) Jession. | 园豆:96 (初学一级) | 2016-03-09 20:32
0

感觉完全没说清楚

select

  name,

  min(开始时间) as 开始时间,

  max(开始时间) as 结束时间,

  归属,

  上级

from 表

group by name,归属,上级

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-09 18:18

再仔细看看 需求表 和补充问题 谢谢你的回答

支持(1) 反对(0) Jession. | 园豆:96 (初学一级) | 2016-03-09 20:32

@Jession.: 

select

  name, count(1) as 天数

from 表 where 开始时间>=startdate and 开始时间<=enddata

group by name

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2016-03-10 10:10
0

用存储过程可以么?

龙吟玖宵 | 园豆:139 (初学一级) | 2016-03-10 09:56

形式不限 只要能实现即可 但是效率要高

支持(0) 反对(0) Jession. | 园豆:96 (初学一级) | 2016-03-10 10:56
0

 select name,min(datetime) as 开始时间, dateadd(d,1,MAX(datetime)) as 结束时间 from A group by name

!雨后的天! | 园豆:239 (菜鸟二级) | 2016-03-10 10:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册