数据库查询相隔同等时间段的数据量
来源:互联网 发布:企政oa软件下载 编辑:程序博客网 时间:2024/04/30 03:49
比如说一张人员基本信息表,emp_baseinfo;
包含两个字段,聘用日期:emp_pydate和
离职日期:emp_lzdate。
现在要按条件查询每隔7天的在职人员数量,
如果查询条件是2016-02-01,
那么截止到2016-02-01是多少人,
截止到2016-01-25是多少人,
截止到2016-01-18是多少人,
截止到2016-01-11是多少人,
截止到2016-01-04是多少人,也就是说按查询条件开始查起,每减去7天查一次,直到当年1月日期不能再减为止。
笔者这里用的是sqlserver2008,具体实现如下:
declare @num varchar(100)declare @sql varchar(1000) set @num ='2016-04-10' set @sql =''while @num>='2016-01-01'begin IF (@num>'2016-01-07') begin set @sql=@sql+'select '''+@num+''' as yyyy,count(*) as n from emp_baseinfo where (Emp_LzDate IS NULL OR (Emp_LzDate IS NOT NULL AND Emp_LzDate>'''+@num+''')) AND emp_pydate<='''+@num+''' union all ' end ELSE begin set @sql=@sql+'select '''+@num+''' as yyyy,count(*) as n from emp_baseinfo where (Emp_LzDate IS NULL OR (Emp_LzDate IS NOT NULL AND Emp_LzDate>'''+@num+''')) AND emp_pydate<='''+@num+'''' end set @num=convert(VARCHAR(100),dateadd(dd,-7,@num),23)endprint(@sql)exec(@sql)需要注意的是,当拼接的sql过长的时候,@sql的容量可能不够用,最好使用@sql nvarchar(max);查询结果如下:
耗时为:
不知有没有更好的办法。
0 0
- 数据库查询相隔同等时间段的数据量
- oracle查询一个时间段每天的数据量
- 数据库时间段查询
- 计算时间段相隔日期
- sql查询一段日期内的某个时间段的数据量,该如何解决
- mysql查询数据库所有表的数据量
- mysql数据库查询某个时间段内数据的方法
- mysql 数据库大数据量查询
- 大数据量高并发的数据库优化,sql查询优化
- 大数据量高并发的数据库优化,sql查询优化
- mysql数据库大数据量的查询优化和分页测试
- 大数据量下的数据库查询与插入如何优化
- mysql数据库大数据量的查询优化和分页测试
- ORACLE 字段的时间段查询。。。
- 查询 某个时间段的时间
- mybatis查询mysql的时间段
- mybatis的时间段动态查询
- MySql查询时间段的方法
- 数组逆序
- 初始JavaScript-闭包
- Activity的生命周期,BACK键和HOME键生命周期
- 火狐浏览器的同步问题
- JavaScript
- 数据库查询相隔同等时间段的数据量
- 第十四周 OJ 进制转换
- Vistual studio 2013 F5调试.NET项目时未编译当前项目及其依赖项目
- 插入有序数组中
- 那些年苹果这样改变了电脑处理字体的方式
- 一款js代码编辑插件
- java switch支持的数据类型
- Android2.2以上使用HorizontalScrollView取代Gallery
- 创建window服务