您的位置:首页 > 数据库

SQL行与行之间相减(电费计算)或 起止码算法或电价、班组算法、局部虚拟表、全局虚拟表

2015-03-30 16:57 375 查看
1、存储过程中尽量不要用全局虚拟表##

注意:先建表结构,然后insert into #RecordDatas exec('select * from tab')

2、正确删除临时表的方法:

if OBJECT_ID('tempdb..#临时表') is not null

drop table #临时表

注意:不管全局临时表、还是临时表用完了一定要drop table 

         临时表存放在tempDb数据库的临时表文件夹

3、实例:反复创建临时表不会报错(Sql2005 以后数据库才有

create procedure [dbo].[proc_testtemptable]
as
begin

select  'aa' a into #a
select * from #a

end


注意:对于存储过程的创建的临时表,没必要删除,对于满足可缓存的临时表对象,想删也删不掉!

反复创建临时表,不会报错,这就是缓存临时表。(但##全局虚拟表除外)



4、实例:执行DDL操作,比如创建索引等。不会缓存临时表

alter procedure [dbo].[proc_testtemptable]

as 

begin

create table #a (col_1 varchar(100))

  

create index idx_col1 on #a(col_1)

insert into #a values('aaa')

select * from #a

end

--查询实例级临时表创建次数
select * from sys.dm_os_performance_counters
where counter_name like '%Temp Tables Creation Rate%'
go
--执行存储过程,存储过程中包含临时表的创建
exec dbo.proc_testtemptable
go

--查询实例级临时表创建次数
select * from sys.dm_os_performance_counters
where counter_name like '%Temp Tables Creation Rate%'
go


效果:



5、并发线程之间当然不会重用同一个临时表,如果不是这样的话,SQL Server也不用混江湖了,并发的每个线程会创建自己的临时表。

一、行相减

方法一:

select *,ROW_NUMBER() OVER(PARTITION BY equipmentid ORDER BY Time) rn into ##2ADDF2D467BB4FD9849F958C1F16B8A3 

from  (select * from RecordDatas201610 where time>='2016-10-09 08:00:00' and time<='2016-10-10 08:00:00' ) a where varname='epi' 

select a.equipmentid,a.time time,b.maxvalue-a.maxvaluevalue into ##C0E93A4B345D47B48D41DCEADC489DAA 

from ##2ADDF2D467BB4FD9849F958C1F16B8A3 a,##2ADDF2D467BB4FD9849F958C1F16B8A3 b 

where a.equipmentid=b.equipmentid AND a.rn+1=b.rn





ALTER PROCEDURE [dbo].[用气量日报]
@dtime datetime= N'2016-06-21'
AS
BEGIN

--时间范围
declare @stime varchar(50),@etime varchar(50),@ctime varchar(50),@STableName varchar(500),@ETableName varchar(500),@Ssql varchar(8000)
set @stime=CONVERT(char(10),@dtime,120)+' 08:00:00'
set @ctime=CONVERT(char(10),@dtime,120)+' 20:00:00'
set @etime=CONVERT(char(10),dateadd(day,1,@dtime),120)+' 08:00:00'

--获得数据源
set @STableName='RecordDatas'+CONVERT(char(6),@dtime,112)
if datepart(day,cast(@etime as datetime))=1
begin
set @ETableName='RecordDatas'+CONVERT(char(6),cast(@etime as datetime),112)
set @Ssql='select * from '+@STableName+' where time>='''+@stime+''' and time<='''+@etime+''' union all select * from '+@ETableName+' where time>='''+@stime+''' and time<='''+@etime+''' '
end
else
begin
set @ETableName=''
set @Ssql='select * from '+@STableName+' where time>='''+@stime+''' and time<='''+@etime+''' '
end

--print @Ssql

CREATE TABLE #RecordDatas(
[EquipmentID] [int] NULL,
[VarID] [int] NULL,
[VarName] [nvarchar](50) NULL,
[MaxValue] [float] NULL,
[MaxValueTime] [datetime] NULL,
[MinValue] [float] NULL,
[MinValueTime] [datetime] NULL,
[AvgValue] [float] NULL,
[Time] [datetime] NULL,
rn int
) ON [PRIMARY]

----编号
insert into #RecordDatas exec('select *,ROW_NUMBER() OVER(PARTITION BY equipmentid ORDER BY Time) rn  from ('+@Ssql+') a where varname=''Lj'' ')
----行减
select a.equipmentid,a.time time,b.maxvalue-a.maxvalue value into #RecordDatas2 from #RecordDatas a,#RecordDatas b where a.equipmentid=b.equipmentid AND a.rn+1=b.rn

create table #气表
(
name   varchar(50),
equipmentid int,
Idorder int
)

insert into #气表 select '车间1',404,1
insert into #气表 select '车间2',405,2
insert into #气表 select '窑尾',406,3
insert into #气表 select '立磨',407,4
insert into #气表 select '旋二',408,5

select a.name,a.equipmentid,isnull(b.白班气量,0) 白班气量,isnull(c.夜班气量,0) 夜班气量,isnull(b.白班气量,0)+isnull(c.夜班气量,0) 日气量  
into #zj
from #气表 a
left join(
select equipmentid,sum(value) 白班气量  from #RecordDatas2
where time>=@stime and  time<@ctime and equipmentid in(select equipmentid from #气表)
group by equipmentid
    )b  on a.equipmentid=b.equipmentid
    left join(
select equipmentid,sum(value) 夜班气量  from #RecordDatas2
where time>=@ctime and  time<@etime and equipmentid in(select equipmentid from #气表)
group by equipmentid
    )c on a.equipmentid=c.equipmentid  
    order by a.Idorder

END


方法二:

select t1.EquipmentID , t1.time ,t1.maxvalue - (select top 1 t2.maxvalue from 数据集 t2 where t2.time < t1.time and t2.EquipmentID = t1.EquipmentID ) 电量from 数据集 t1 

方法三:
SELECT  t1.EquipmentID 设备Id, t1.maxValue 电量1,t1.time 时间1,max(t2.time)与时间1相邻 FROM ##datarecord t1               left join ##datarecord t2            on t1.varid=t2.varid                and t1.EquipmentID=t2.EquipmentID           and t1.time>t2.time        where t2.maxValue>0 and t1.maxValue>0group by  t1.EquipmentID,t1.maxValue,t1.time
效果:



二、起止码算法

推荐使用:
select EquipmentID 设备ID,VarName 变量,MaxValue [8点值],Time [时间] from dbo.RecordDatas201610 a
where VarName='epi'
and Time=(
select min(time) from RecordDatas201610 b
where  a.equipmentid=b.equipmentid
and Time>='2016-10-09 08:00:00'
)


效果:



select EquipmentID,MaxValue,time
from
(
--partition by:以EquipmentID、convert(varchar(10),time,120)进行分组、再以time进行倒序
select EquipmentID,MaxValue,time,ROW_NUMBER()over(partition by EquipmentID,convert(varchar(10),time,120) order by time desc) rn
from dbo.RecordDatas201610
where VarName = 'EPI'
and Time <= '2016-10-09 08:00:00'
) i
where rn = 1


三、电价班组算法

数据表、电费、班组表

CREATE TABLE [dbo].[数据](
[EquipmentID] [int] NULL,
[VarID] [int] NULL,
[VarName] [nvarchar](50) NULL,
[MaxValue] [float] NULL,
[MaxValueTime] [datetime] NULL,
[MinValue] [float] NULL,
[MinValueTime] [datetime] NULL,
[AvgValue] [float] NULL,
[Time] [datetime] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1584792, CAST(0x0000A773018B80D4 AS DateTime), 1584706, CAST(0x0000A7740000012C AS DateTime), 1584750, CAST(0x0000A77400000000 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1585066, CAST(0x0000A77400083E8C AS DateTime), 1584979, CAST(0x0000A77400083E8C AS DateTime), 1585023, CAST(0x0000A77400083D60 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1585339, CAST(0x0000A77400107BEC AS DateTime), 1585253, CAST(0x0000A77400107BEC AS DateTime), 1585296, CAST(0x0000A77400107AC0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1585613, CAST(0x0000A7740018B94C AS DateTime), 1585526, CAST(0x0000A7740018B94C AS DateTime), 1585570, CAST(0x0000A7740018B820 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1585886, CAST(0x0000A7740020F6AC AS DateTime), 1585798, CAST(0x0000A7740020F6AC AS DateTime), 1585843, CAST(0x0000A7740020F580 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1586160, CAST(0x0000A774002931B4 AS DateTime), 1586074, CAST(0x0000A7740029340C AS DateTime), 1586116, CAST(0x0000A774002932E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1586435, CAST(0x0000A77400317040 AS DateTime), 1586347, CAST(0x0000A77400317040 AS DateTime), 1586391, CAST(0x0000A77400317040 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1586709, CAST(0x0000A7740039AC74 AS DateTime), 1586623, CAST(0x0000A7740039AECC AS DateTime), 1586665, CAST(0x0000A7740039ADA0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1586984, CAST(0x0000A7740041EC2C AS DateTime), 1586896, CAST(0x0000A7740041EC2C AS DateTime), 1586940, CAST(0x0000A7740041EB00 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1587258, CAST(0x0000A774004A2734 AS DateTime), 1587172, CAST(0x0000A774004A298C AS DateTime), 1587215, CAST(0x0000A774004A2860 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1587533, CAST(0x0000A774005266EC AS DateTime), 1587445, CAST(0x0000A77400526818 AS DateTime), 1587490, CAST(0x0000A774005265C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1587809, CAST(0x0000A774005AA44C AS DateTime), 1587722, CAST(0x0000A774005AA44C AS DateTime), 1587766, CAST(0x0000A774005AA320 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1588086, CAST(0x0000A7740062DF54 AS DateTime), 1587998, CAST(0x0000A7740062E2D8 AS DateTime), 1588042, CAST(0x0000A7740062E080 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1588363, CAST(0x0000A774006B1F0C AS DateTime), 1588275, CAST(0x0000A77400688698 AS DateTime), 1588319, CAST(0x0000A774006B1DE0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1588640, CAST(0x0000A77400735B40 AS DateTime), 1588552, CAST(0x0000A77400735C6C AS DateTime), 1588597, CAST(0x0000A77400735B40 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1588916, CAST(0x0000A774007B99CC AS DateTime), 1588829, CAST(0x0000A774007B99CC AS DateTime), 1588873, CAST(0x0000A774007B98A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1589189, CAST(0x0000A7740083D72C AS DateTime), 1589101, CAST(0x0000A7740083D72C AS DateTime), 1589146, CAST(0x0000A7740083D600 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1589465, CAST(0x0000A774008C148C AS DateTime), 1589377, CAST(0x0000A774008C148C AS DateTime), 1589422, CAST(0x0000A774008C1360 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1589744, CAST(0x0000A774009451EC AS DateTime), 1589656, CAST(0x0000A774009451EC AS DateTime), 1589699, CAST(0x0000A774009450C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1590012, CAST(0x0000A774009C8F4C AS DateTime), 1589927, CAST(0x0000A774009C9078 AS DateTime), 1589969, CAST(0x0000A774009C8E20 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1590282, CAST(0x0000A77400A4CA54 AS DateTime), 1590196, CAST(0x0000A77400A4CCAC AS DateTime), 1590239, CAST(0x0000A77400A4CB80 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1590556, CAST(0x0000A77400AD0A0C AS DateTime), 1590469, CAST(0x0000A77400AD0A0C AS DateTime), 1590513, CAST(0x0000A77400AD08E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1590822, CAST(0x0000A77400B54514 AS DateTime), 1590739, CAST(0x0000A77400B54898 AS DateTime), 1590781, CAST(0x0000A77400B54640 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1591088, CAST(0x0000A77400BD83A0 AS DateTime), 1591002, CAST(0x0000A77400BAE550 AS DateTime), 1591045, CAST(0x0000A77400BD83A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1591362, CAST(0x0000A77400C5BFD4 AS DateTime), 1591276, CAST(0x0000A77400C5C22C AS DateTime), 1591319, CAST(0x0000A77400C5C100 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1591636, CAST(0x0000A77400CDFF8C AS DateTime), 1591547, CAST(0x0000A77400CDFF8C AS DateTime), 1591591, CAST(0x0000A77400CDFE60 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1591907, CAST(0x0000A77400D63CEC AS DateTime), 1591821, CAST(0x0000A77400D3A5A4 AS DateTime), 1591864, CAST(0x0000A77400D63BC0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1592181, CAST(0x0000A77400DE77F4 AS DateTime), 1592095, CAST(0x0000A77400DE7B78 AS DateTime), 1592138, CAST(0x0000A77400DE7920 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1592455, CAST(0x0000A77400E6B7AC AS DateTime), 1592368, CAST(0x0000A77400E6B7AC AS DateTime), 1592412, CAST(0x0000A77400E6B680 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1592730, CAST(0x0000A77400EEF2B4 AS DateTime), 1592644, CAST(0x0000A77400EEF50C AS DateTime), 1592687, CAST(0x0000A77400EEF3E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1593005, CAST(0x0000A77400F7326C AS DateTime), 1592919, CAST(0x0000A77400F49EA8 AS DateTime), 1592962, CAST(0x0000A77400F73140 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1593281, CAST(0x0000A77400FF6EA0 AS DateTime), 1593193, CAST(0x0000A77400FF6EA0 AS DateTime), 1593236, CAST(0x0000A77400FF6EA0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1593554, CAST(0x0000A7740107AD2C AS DateTime), 1593466, CAST(0x0000A7740107AD2C AS DateTime), 1593510, CAST(0x0000A7740107AC00 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1593828, CAST(0x0000A774010FE834 AS DateTime), 1593742, CAST(0x0000A774010FEA8C AS DateTime), 1593785, CAST(0x0000A774010FE960 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1594102, CAST(0x0000A774011827EC AS DateTime), 1594015, CAST(0x0000A774011827EC AS DateTime), 1594058, CAST(0x0000A774011826C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1594375, CAST(0x0000A7740120654C AS DateTime), 1594289, CAST(0x0000A7740120654C AS DateTime), 1594332, CAST(0x0000A77401206420 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1594649, CAST(0x0000A7740128A2AC AS DateTime), 1594561, CAST(0x0000A7740128A2AC AS DateTime), 1594605, CAST(0x0000A7740128A180 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1594921, CAST(0x0000A7740130E138 AS DateTime), 1594834, CAST(0x0000A7740130E138 AS DateTime), 1594877, CAST(0x0000A7740130DEE0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1595192, CAST(0x0000A77401391D6C AS DateTime), 1595106, CAST(0x0000A774013682A0 AS DateTime), 1595149, CAST(0x0000A77401391C40 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1595464, CAST(0x0000A77401415ACC AS DateTime), 1595378, CAST(0x0000A77401415ACC AS DateTime), 1595422, CAST(0x0000A774014159A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1595738, CAST(0x0000A77401499958 AS DateTime), 1595651, CAST(0x0000A77401499958 AS DateTime), 1595694, CAST(0x0000A77401499700 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1596008, CAST(0x0000A7740151D58C AS DateTime), 1595921, CAST(0x0000A7740151D58C AS DateTime), 1595965, CAST(0x0000A7740151D460 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1596280, CAST(0x0000A774015A1418 AS DateTime), 1596193, CAST(0x0000A774015A1418 AS DateTime), 1596236, CAST(0x0000A774015A11C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1596551, CAST(0x0000A77401624F20 AS DateTime), 1596465, CAST(0x0000A774015FB580 AS DateTime), 1596509, CAST(0x0000A77401624F20 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1596823, CAST(0x0000A774016A8DAC AS DateTime), 1596737, CAST(0x0000A774016A8DAC AS DateTime), 1596780, CAST(0x0000A774016A8C80 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1597095, CAST(0x0000A7740172C8B4 AS DateTime), 1597009, CAST(0x0000A7740172CB0C AS DateTime), 1597052, CAST(0x0000A7740172C9E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1597367, CAST(0x0000A774017B086C AS DateTime), 1597280, CAST(0x0000A774017B086C AS DateTime), 1597324, CAST(0x0000A774017B0740 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1597640, CAST(0x0000A774018345CC AS DateTime), 1597554, CAST(0x0000A7740180AFB0 AS DateTime), 1597596, CAST(0x0000A774018344A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (2, 29, N'EPI', 1597912, CAST(0x0000A7750000012C AS DateTime), 1597826, CAST(0x0000A7750000012C AS DateTime), 1597868, CAST(0x0000A77500000000 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98491.2, CAST(0x0000A773018B80D4 AS DateTime), 98491.2, CAST(0x0000A773018B80D4 AS DateTime), 98491.2, CAST(0x0000A77400000000 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98498.4, CAST(0x0000A77400083C34 AS DateTime), 98496, CAST(0x0000A7740007F38C AS DateTime), 98496.27, CAST(0x0000A77400083D60 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98503.2, CAST(0x0000A77400107994 AS DateTime), 98500.8, CAST(0x0000A77400105D74 AS DateTime), 98500.9, CAST(0x0000A77400107AC0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98508, CAST(0x0000A7740018B6F4 AS DateTime), 98505.6, CAST(0x0000A77400171CCC AS DateTime), 98507.07, CAST(0x0000A7740018B820 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98512.8, CAST(0x0000A7740020F454 AS DateTime), 98510.4, CAST(0x0000A774001F926C AS DateTime), 98511.66, CAST(0x0000A7740020F580 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98517.6, CAST(0x0000A774002931B4 AS DateTime), 98515.2, CAST(0x0000A7740027CC48 AS DateTime), 98516.48, CAST(0x0000A774002932E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98522.4, CAST(0x0000A77400316F14 AS DateTime), 98520, CAST(0x0000A77400311BE0 AS DateTime), 98520.3, CAST(0x0000A77400317040 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98524.8, CAST(0x0000A7740039AC74 AS DateTime), 98524.8, CAST(0x0000A7740039AC74 AS DateTime), 98524.8, CAST(0x0000A7740039ADA0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98529.6, CAST(0x0000A7740041E9D4 AS DateTime), 98529.6, CAST(0x0000A7740041E9D4 AS DateTime), 98529.6, CAST(0x0000A7740041EB00 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98534.4, CAST(0x0000A774004A2734 AS DateTime), 98534.4, CAST(0x0000A774004A2734 AS DateTime), 98534.4, CAST(0x0000A774004A2860 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98539.2, CAST(0x0000A77400526494 AS DateTime), 98536.8, CAST(0x0000A7740050F49C AS DateTime), 98538.12, CAST(0x0000A774005265C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98544, CAST(0x0000A774005AA1F4 AS DateTime), 98541.6, CAST(0x0000A774005A918C AS DateTime), 98541.66, CAST(0x0000A774005AA320 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98546.4, CAST(0x0000A7740062DF54 AS DateTime), 98546.4, CAST(0x0000A7740062DF54 AS DateTime), 98546.4, CAST(0x0000A7740062E080 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98551.2, CAST(0x0000A774006B1CB4 AS DateTime), 98551.2, CAST(0x0000A774006B1CB4 AS DateTime), 98551.2, CAST(0x0000A774006B1DE0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98558.4, CAST(0x0000A77400735A14 AS DateTime), 98556, CAST(0x0000A7740072CC48 AS DateTime), 98556.51, CAST(0x0000A77400735B40 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98563.2, CAST(0x0000A774007B9774 AS DateTime), 98560.8, CAST(0x0000A774007A22CC AS DateTime), 98562.13, CAST(0x0000A774007B98A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98570.4, CAST(0x0000A7740083D4D4 AS DateTime), 98568, CAST(0x0000A77400839910 AS DateTime), 98568.22, CAST(0x0000A7740083D600 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98575.2, CAST(0x0000A774008C1234 AS DateTime), 98572.8, CAST(0x0000A7740089844C AS DateTime), 98575.14, CAST(0x0000A774008C1360 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98580, CAST(0x0000A77400944F94 AS DateTime), 98580, CAST(0x0000A77400944F94 AS DateTime), 98580, CAST(0x0000A774009450C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98584.8, CAST(0x0000A774009C8CF4 AS DateTime), 98582.4, CAST(0x0000A7740099F804 AS DateTime), 98584.77, CAST(0x0000A774009C8E20 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98589.6, CAST(0x0000A77400A4CA54 AS DateTime), 98587.2, CAST(0x0000A77400A2AE18 AS DateTime), 98589.14, CAST(0x0000A77400A4CB80 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98594.4, CAST(0x0000A77400AD07B4 AS DateTime), 98592, CAST(0x0000A77400AB5BF8 AS DateTime), 98593.52, CAST(0x0000A77400AD08E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98601.6, CAST(0x0000A77400B54514 AS DateTime), 98599.2, CAST(0x0000A77400B4E04C AS DateTime), 98599.56, CAST(0x0000A77400B54640 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98608.8, CAST(0x0000A77400BD8274 AS DateTime), 98606.4, CAST(0x0000A77400BD46B0 AS DateTime), 98606.62, CAST(0x0000A77400BD83A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98616, CAST(0x0000A77400C5BFD4 AS DateTime), 98613.6, CAST(0x0000A77400C5BEA8 AS DateTime), 98613.61, CAST(0x0000A77400C5C100 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98618.4, CAST(0x0000A77400CDFD34 AS DateTime), 98618.4, CAST(0x0000A77400CDFD34 AS DateTime), 98618.4, CAST(0x0000A77400CDFE60 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98623.2, CAST(0x0000A77400D63A94 AS DateTime), 98623.2, CAST(0x0000A77400D63A94 AS DateTime), 98623.2, CAST(0x0000A77400D63BC0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98630.4, CAST(0x0000A77400DE77F4 AS DateTime), 98628, CAST(0x0000A77400DC6AF4 AS DateTime), 98629.88, CAST(0x0000A77400DE7920 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98635.2, CAST(0x0000A77400E6B554 AS DateTime), 98632.8, CAST(0x0000A77400E4E670 AS DateTime), 98634.46, CAST(0x0000A77400E6B680 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98640, CAST(0x0000A77400EEF2B4 AS DateTime), 98637.6, CAST(0x0000A77400EEA688 AS DateTime), 98637.88, CAST(0x0000A77400EEF3E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98642.4, CAST(0x0000A77400F73014 AS DateTime), 98642.4, CAST(0x0000A77400F73014 AS DateTime), 98642.4, CAST(0x0000A77400F73140 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98647.2, CAST(0x0000A77400FF6D74 AS DateTime), 98647.2, CAST(0x0000A77400FF6D74 AS DateTime), 98647.2, CAST(0x0000A77400FF6EA0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98652, CAST(0x0000A7740107AAD4 AS DateTime), 98649.6, CAST(0x0000A7740106C2CC AS DateTime), 98650.43, CAST(0x0000A7740107AC00 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98656.8, CAST(0x0000A774010FE834 AS DateTime), 98654.4, CAST(0x0000A774010F9050 AS DateTime), 98654.71, CAST(0x0000A774010FE960 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98659.2, CAST(0x0000A77401182594 AS DateTime), 98659.2, CAST(0x0000A77401182594 AS DateTime), 98659.2, CAST(0x0000A774011826C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98666.4, CAST(0x0000A774012062F4 AS DateTime), 98664, CAST(0x0000A774011F9CE8 AS DateTime), 98664.71, CAST(0x0000A77401206420 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98671.2, CAST(0x0000A7740128A054 AS DateTime), 98668.8, CAST(0x0000A7740127BAA4 AS DateTime), 98669.62, CAST(0x0000A7740128A180 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98676, CAST(0x0000A7740130DDB4 AS DateTime), 98673.6, CAST(0x0000A774012F645C AS DateTime), 98674.95, CAST(0x0000A7740130DEE0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98680.8, CAST(0x0000A77401391B14 AS DateTime), 98678.4, CAST(0x0000A774013875D8 AS DateTime), 98678.99, CAST(0x0000A77401391C40 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98683.2, CAST(0x0000A77401415874 AS DateTime), 98683.2, CAST(0x0000A77401415874 AS DateTime), 98683.2, CAST(0x0000A774014159A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98688, CAST(0x0000A774014995D4 AS DateTime), 98688, CAST(0x0000A774014995D4 AS DateTime), 98688, CAST(0x0000A77401499700 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98692.8, CAST(0x0000A7740151D334 AS DateTime), 98692.8, CAST(0x0000A7740151D334 AS DateTime), 98692.8, CAST(0x0000A7740151D460 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98697.6, CAST(0x0000A774015A1094 AS DateTime), 98697.6, CAST(0x0000A774015A1094 AS DateTime), 98697.6, CAST(0x0000A774015A11C0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98704.8, CAST(0x0000A77401624DF4 AS DateTime), 98702.4, CAST(0x0000A77401612DAC AS DateTime), 98703.43, CAST(0x0000A77401624F20 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98714.4, CAST(0x0000A774016A8B54 AS DateTime), 98712, CAST(0x0000A7740169FA04 AS DateTime), 98712.52, CAST(0x0000A774016A8C80 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98719.2, CAST(0x0000A7740172C8B4 AS DateTime), 98716.8, CAST(0x0000A77401708BA8 AS DateTime), 98718.85, CAST(0x0000A7740172C9E0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98726.4, CAST(0x0000A774017B0614 AS DateTime), 98724, CAST(0x0000A774017AEFD0 AS DateTime), 98724.08, CAST(0x0000A774017B0740 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98731.2, CAST(0x0000A77401834374 AS DateTime), 98728.8, CAST(0x0000A7740182AC48 AS DateTime), 98729.34, CAST(0x0000A774018344A0 AS DateTime))
INSERT [dbo].[数据] ([EquipmentID], [VarID], [VarName], [MaxValue], [MaxValueTime], [MinValue], [MinValueTime], [AvgValue], [Time]) VALUES (3, 29, N'EPI', 98736, CAST(0x0000A774018B80D4 AS DateTime), 98733.6, CAST(0x0000A77401892B2C AS DateTime), 98735.71, CAST(0x0000A77500000000 AS DateTime))
/****** Object:  Table [dbo].[电费]    Script Date: 09/23/2017 17:03:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[电费](
[id] [int] NULL,
[name] [varchar](50) NULL,
[price] [float] NULL,
[time1] [datetime] NULL,
[time2] [datetime] NULL,
[rn] [varchar](11) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (2, N'Bottom', 0.2232, CAST(0x00009CF100000000 AS DateTime), CAST(0x00009CF100735B40 AS DateTime), N'00:00-07:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (3, N'Common', 0.4465, CAST(0x00009CF100735B40 AS DateTime), CAST(0x00009CF10083D600 AS DateTime), N'07:00-08:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (1, N'Top', 0.6697, CAST(0x00009CF10083D600 AS DateTime), CAST(0x00009CF100B54640 AS DateTime), N'08:00-11:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (3, N'Common', 0.4465, CAST(0x00009CF100B54640 AS DateTime), CAST(0x00009CF100F73140 AS DateTime), N'11:00-15:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (1, N'Top', 0.6697, CAST(0x00009CF100F73140 AS DateTime), CAST(0x00009CF10107AC00 AS DateTime), N'15:00-16:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (3, N'Common', 0.4465, CAST(0x00009CF10107AC00 AS DateTime), CAST(0x00009CF10130DEE0 AS DateTime), N'16:00-18:30')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (1, N'Top', 0.6697, CAST(0x00009CF10130DEE0 AS DateTime), CAST(0x00009CF1016A8C80 AS DateTime), N'18:30-22:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (3, N'Common', 0.4465, CAST(0x00009CF1016A8C80 AS DateTime), CAST(0x00009CF1017B0740 AS DateTime), N'22:00-23:00')
INSERT [dbo].[电费] ([id], [name], [price], [time1], [time2], [rn]) VALUES (2, N'Bottom', 0.2232, CAST(0x00009CF1017B0740 AS DateTime), CAST(0x00009CF1018B3BB0 AS DateTime), N'23:00-23:59')
/****** Object:  Table [dbo].[班组]    Script Date: 09/23/2017 17:03:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[班组](
[id] [int] NULL,
[name] [varchar](50) NULL,
[time1] [datetime] NULL,
[time2] [datetime] NULL,
[daycnt] [int] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[班组] ([id], [name], [time1], [time2], [daycnt]) VALUES (1, N'早班', CAST(0x0000000000000000 AS DateTime), CAST(0x000000000083D600 AS DateTime), 0)
INSERT [dbo].[班组] ([id], [name], [time1], [time2], [daycnt]) VALUES (2, N'中班', CAST(0x000000000083D600 AS DateTime), CAST(0x000000000107AC00 AS DateTime), 0)
INSERT [dbo].[班组] ([id], [name], [time1], [time2], [daycnt]) VALUES (3, N'晚班', CAST(0x000000000107AC00 AS DateTime), CAST(0x0000000100000000 AS DateTime), 1)


select
t1.*,
case when t1.maxValue<t2.maxValue
then t1.maxValue-t1.minValue
else t1.maxValue-t2.maxValue end v,
t3.id,t3.name+cast(t3.rn as varchar) name,t3.price,t3.time1,t3.time2
,t4.name name2
from
(
SELECT t1.EquipmentID, t1.varid,t1.VarName,t1.maxValue,t1.MaxValueTime,
t1.MinValue,t1.MinValueTime,t1.AvgValue,t1.time,max(t2.time) t
FROM 数据 t1
left join 数据 t2
on t1.varid=t2.varid and t1.EquipmentID=t2.EquipmentID and t1.time>t2.time
where t1.maxValue>0 and t2.maxValue>0
group by  t1.EquipmentID, t1.varid,t1.VarName,t1.maxValue,t1.MaxValueTime,
t1.MinValue,t1.MinValueTime,t1.AvgValue,t1.time
)t1
left join 数据 t2
on t1.varid=t2.varid and t1.EquipmentID=t2.EquipmentID
and t1.t=t2.time  and t2.maxValue>0
left join 电费 t3
on dateadd(mi,-1,t1.time)>Convert(varchar(10),dateadd(mi,-1,t1.time),120)+' '+Convert(varchar(8),t3.time1,14)
and dateadd(mi,-1,t1.time)<=Convert(varchar(10),dateadd(mi,-1,t1.time),120)+' '+Convert(varchar(8),t3.time2,14)
left join 班组 t4
on dateadd(mi,0-t4.daycnt,t1.time)>dateadd(mi,0-t4.daycnt,Convert(datetime,Convert(varchar(10),dateadd(mi,0-t4.daycnt,t1.time),120)+' '+Convert(varchar(8),t4.time1,14)))
and dateadd(mi,0-t4.daycnt,t1.time)<=dateadd(day,t4.daycnt,dateadd(mi,0-t4.daycnt,Convert(datetime,Convert(varchar(10),t1.time,120)+' '+Convert(varchar(8),t4.time2,14))))
order by t1.EquipmentID,t1.varid,t1.time
效果:



select Convert(varchar(10),@td,120) time,
e.equipmentid,
e.parentid,
e.name,
cast(isnull(sum(t1.v),0) as decimal(18,2)) '日总电量',
cast(isnull(sum(t1.v * t1.price),0) as decimal(18,2)) '日总电费',
cast(isnull(sum(t2.v),0) as decimal(18,2))'早班电量',
cast(isnull(sum(t2.v * t2.price),0) as decimal(18,2)) '早班电费',
cast(isnull(sum(t3.v),0) as decimal(18,2))'中班电量',
cast(isnull(sum(t3.v * t3.price),0) as decimal(18,2)) '中班电费',
cast(isnull(sum(t4.v),0) as decimal(18,2))'晚班电量',
cast(isnull(sum(t4.v * t4.price),0) as decimal(18,2)) '晚班电费',
cast(isnull(sum(t5.v),0) as decimal(18,2))'尖时段电量',
cast(isnull(sum(t5.v * t5.price),0) as decimal(18,2)) '尖时段电费',
cast(isnull(sum(t6.v),0) as decimal(18,2))'峰时段电量',
cast(isnull(sum(t6.v * t6.price),0) as decimal(18,2)) '峰时段电费',
cast(isnull(sum(t7.v),0) as decimal(18,2))'谷时段电量',
cast(isnull(sum(t7.v * t7.price),0) as decimal(18,2)) '谷时段电费',
cast(isnull(sum(t8.v),0) as decimal(18,2))'平时段电量',
cast(isnull(sum(t8.v * t8.price),0) as decimal(18,2)) '平时段电费'
into ##temp4
from ##temp2 t1
left join ##temp2 t2 on t1.equipmentid = t2.equipmentid
and t2.name2 = '晚班' and t1.time=t2.time and t1.varname=t2.varname
left join ##temp2 t3 on t1.equipmentid = t3.equipmentid
and t3.name2 = '早班' and t1.time=t3.time and t1.varname=t3.varname
left join ##temp2 t4 on t1.equipmentid = t4.equipmentid
and t4.name2 = '中班' and t1.time=t4.time and t1.varname=t4.varname
left join ##temp2 t5 on t1.equipmentid = t5.equipmentid
and t5.name like 'Peak%' and t1.time=t5.time and t1.varname=t5.varname
left join ##temp2 t6 on t1.equipmentid = t6.equipmentid
and t6.name like 'Top%' and t1.time=t6.time and t1.varname=t6.varname
left join ##temp2 t7 on t1.equipmentid = t7.equipmentid
and t7.name like 'Bottom%' and t1.time=t7.time and t1.varname=t7.varname
left join ##temp2 t8 on t1.equipmentid = t8.equipmentid
and t8.name like 'Common%' and t1.time=t8.time and t1.varname=t8.varname
right join Equipment e on t1.equipmentid=e.equipmentid and t1.name2 in ('晚班','早班','中班')
group by e.equipmentid,e.name,e.parentid
order by e.equipmentid;


其他:

declare @dtime datetime
set @dtime='2017-05-15'

if object_id('tempdb..#班组') is not null
exec('drop table #班组')

select ShiftName name,
StartTime ,
convert(char(10),dateadd(day,DATEDIFF(day,'1900-01-01 00:00:00.000',StartTime),@dtime),120)+' '+convert(char(8),StartTime,14) 开始时间,
EndTime,
convert(char(10),dateadd(day,DATEDIFF(day,'1900-01-01 00:00:00.000',EndTime),@dtime),120)+' '+convert(char(8),EndTime,14) 结束时间,
GroupName into #班组
from dbo.ShiftSet2

select * from #班组


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: