create table ABSWorkLog
(
id int identity(1,1),
MachineCode varchar(50),
startTime smalldatetime,
endTime smalldatetime
)
go
insert absworklog values ('abs1','2008-02-02','2008-02-09')
insert absworklog values ('abs1','2008-02-13','2008-02-26')
insert absworklog values ('abs1','2008-03-02','2008-03-26')
insert absworklog values ('abs2','2008-01-26','2008-02-06')
insert absworklog values ('abs2','2008-02-24','2008-03-08')
insert absworklog values ('abs3','2008-02-07','2008-02-25')
go
select * from absworklog
select * into #abs1worklog from absworklog where machinecode='abs1'
select * from #abs1worklog
select * into #otherabsworklog from absworklog where machinecode<>'abs1'
select * from #otherabsworklog
select DISTINCT machinecode into #otherabsname from absworklog where machinecode<>'abs1'
select * from #otherabsname absworklog
create table #temp
(
machinecode varchar(50),
stopTime int
)
go
select * from #temp
declare @startTime smalldatetime,@endTime smalldatetime
DECLARE MyCursor CURSOR FOR
SELECT startTime,endTime FROM #abs1worklog
open MyCursor
FETCH NEXT FROM MyCursor INTO @startTime, @endTime
WHILE @@fetch_status = 0
BEGIN
select a.machinecode,
t=(case when b.startTime is null then convert(int,@endTime)-convert(int,@startTime)
when b.startTime<@startTime and b.endTime<@endTime then convert(int,@endTime)-convert(int,b.endTime)
when b.startTime>@startTime and b.endTime>@endTime then convert(int,b.startTime)-convert(int,@startTime)
when b.startTime>@startTime and b.endTime<@endTime then convert(int,b.startTime)-convert(int,@startTime)+convert(int,@endTime)-convert(int,b.endTime)
end)
into #mid from #otherabsname a
right join #otherabsworklog b on b.machinecode=a.machinecode
where (b.startTime<@startTime and b.endTime>@startTime and b.endTime<@endTime)
or (b.startTime>@startTime and b.endTime<@endTime)
or (b.startTime>@startTime and b.startTime<@endTime and b.endTime>@endTime)
or (b.starttime<@startTime and b.endTime>@endTime)
declare @name varchar(50),@t int
declare MidCurrsor CURSOR FOR
select machinecode,t from #mid
open MidCurrsor
FETCH NEXT FROM MidCurrsor INTO @name, @t
WHILE @@fetch_status = 0
BEGIN
insert #temp values (@name,@t)
FETCH NEXT FROM MidCurrsor INTO @name, @t
end
DEALLOCATE MidCurrsor
drop table #mid
FETCH NEXT FROM MyCursor INTO @startTime, @endTime
END
DEALLOCATE MyCursor
GO
select machinecode,sum(stoptime) from #temp GROUP BY machinecode
分享到:
相关推荐
在sql server 数据库中,在一段时间范围内,间隔几条数据取出一条信息的检索方法。如:时间段内“2020-10-10 00:00:00” 到“2020-10-11 00:00:00”内,间隔30秒取出一套数据方法
SQL Server 查询两个日期之间的所有月份示例
主要介绍了SqlServer 按时间段查询问题,需要的朋友可以参考下
【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有...
Made by 三易电子工作室 && 易小时课堂。
考勤插入指定时间段的随机记录存储过程,时间段可修改
本书及其续篇——《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。这两本书侧重于解决实践中的常见问题,并讨论了解决这些问题的方法。它们...
SQL Server 数据库管理常用的SQL和T-SQL语句 ...SQLSERVER 索引 填充因子 Server 中一个非常强大的日期格式化函数 根据表中数据生成insert语句的存储过程.txt 精妙的SQL语句.txt 事务处理.txt php_ADODB.txt
书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...
笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql ...
sql获取上一周时间段 超实用的sql server中获取一个星期的sql语句
有时候,我们的业务可能会这样要求:某张表是动态的,他要求每隔一段时间(如:一个月)自动生成一张结构相同的新表(如:日志表Log),这是我们要判断数据库中是否存在某张表,如果没有,则新建一张表,否者直接...
在SQL Server中生成随机浮点数,把该浮点数对应的属性设置为关键字,则可以避免重复。
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...
4.3.1 使用SQL Server Management Studio查询 4.3.2 执行查询和改变设置 4.3.3 检查和设置配置参数 4.3.4 使用ALTER DATABASE改变设置 第Ⅱ部分 SQL Server 2008的系统管理 第5章 管理企业 5.1 使用SQL Server ...
通过操作SQL SERVER 数据库,生成BUG统计的EXCEL文件。 序号 字段 定义 备注 1 新建BUG数 检测时间在周时间段内 无论哪种状态都要统计 2 本周修复BUG数 状态为“已修正”或“已关闭”,并此修改时间在周时间段内 ...