sql语句优化及后一条减前一条

sql语句优化: 1。表加索引 2。少用like,直接用=所有值 3. where语句把能大量筛查的条件写在前面 4.数据量大时,参与计算的值相同时只取一条 后一条减前一条, select houec,[houdate],houtimes ,tw=ISNULL(convert(decimal(18,2),houtw-(select top 1 qiant

sql语句优化:

1。表加索引

2。少用like,直接用=所有值

3.where语句把能大量筛查的条件写在前面

4.数据量大时,参与计算的值相同时只取一条

 

后一条减前一条,,

select houec,[houdate],houtimes
,tw=ISNULL(convert(decimal(18,2),houtw-(select top 1 qiantw from #qian where houec=qianec and houcid>qiancid order by qiancid desc)),0)
,mins=isnull(DATEDIFF (minute ,(select top 1 qiandatetimes from #qian where houec=qianec and houcid>qiancid order by qiancid desc),houdatetimes),0)
from #hou

其中:

1 临时表#hou与#qian为同一个表中的数据,为方便计算写入两个临时表;

2 ec为设备编号,id为表的ID号,相同的设备中id号唯一,houec=qianec and houcid>qiancid 限定了相同设备中相临ID号的记录相减。

 

select top 1 qiantw from #qian where houec=qianec and houcid>qiancid order by qiancid desc

为查询houec=qianec 而且houcid>qiancid相同设备中相临ID号的记录相减

日报

drop table #qian

CREATE TABLE #qian(qiancid nvarchar(20),qianec nvarchar(20) null, qiandatetimes smalldatetime null, qiandate datetime null,
qiantimes varchar(20) null,qiantw float null,
CONSTRAINT [PK_Electricqian] PRIMARY KEY CLUSTERED
(
[qiancid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO #qian
select min(cid) as qiancid,cequipmentcode as qianec,
min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as qiandatetimes ,
convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as qiandate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as qiantimes,
cast(ctotalyield as float) as qiantw
from InverterData_201310
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) = ‘2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield
UNION select min(cid) as qiancid,cequipmentcode as qianec,
min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as qiandatetimes ,
convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as qiandate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as qiantimes,
cast(ctotalyield as float) as qiantw
from InverterData_201311
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) = ‘2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield
UNION select min(cid) as qiancid,cequipmentcode as qianec,
min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as qiandatetimes ,
convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as qiandate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as qiantimes,
cast(ctotalyield as float) as qiantw
from InverterData_201312
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) = ‘2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield

drop table #hou

CREATE TABLE #hou(houcid nvarchar(20),houec nvarchar(20) null,houdatetimes smalldatetime null, houdate smalldatetime null,houtimes varchar(20) null,houtw float null,
CONSTRAINT [PK_Electrichou] PRIMARY KEY CLUSTERED
(
[houcid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO #hou
select min(cid) as houcid,cequipmentcode as houec,min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as houdatetimes ,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as houdate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as houtimes,
cast(ctotalyield as float) as houtw
from InverterData_201310
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120)=’2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield
UNION
select min(cid) as houcid,cequipmentcode as houec,min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as houdatetimes ,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as houdate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as houtimes,
cast(ctotalyield as float) as houtw
from InverterData_201311
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120)=’2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield
UNION
select min(cid) as houcid,cequipmentcode as houec,min(dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))as houdatetimes ,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120) as houdate,
str(datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)))) + ‘:00’ as houtimes,
cast(ctotalyield as float) as houtw
from InverterData_201312
where convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120)=’2013-11-12′ and ctotalyield’na’ and ctotalyield” and ctotalyield is not null and ctotalyield’0′ and ctotalyield’#INV#’ and ctotalyield’nan’
group by cequipmentcode,convert(varchar(10),dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120)),120),datepart(hh,dateadd(hh,0,convert(SMALLDATETIME,(cdate+’ ‘+ctime),120))),ctotalyield

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1862643.html

(0)
上一篇 2025年2月22日 06:20:29
下一篇 2025年2月22日 06:22:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue项目开发中的7个工程化实践优化策略

    vue是一款非常流行的前端框架,它具有易学易用、高效便捷、扩展性强等特性,因此得到了广泛的应用和认可。在vue项目开发中,进行工程化实践优化是非常必要的,可以提高开发效率和项目质量。本文将介绍7个工程化实践优化策略,帮助你在vue项目开发中…

    编程技术 2025年3月13日
    200
  • Java开发中如何优化字符串查找性能

    在java开发中,字符串查找是一个常见且关键的操作。无论是在文本处理、数据分析还是系统日志分析等应用场景中,字符串的查找性能都对程序的整体性能有着重要影响。因此,如何优化字符串查找性能成为了java开发中不可忽视的问题。 一、使用index…

    编程技术 2025年3月13日
    200
  • Java开发技巧大揭秘:优化正则表达式匹配的方法

    随着互联网的快速发展,Java成为了一种广泛使用的编程语言。在Java开发过程中,正则表达式是一种非常有用的工具,可以用于字符串的匹配、分割和替换等操作。然而,由于正则表达式的匹配过程较为复杂,可能会导致性能问题。本文将揭示一些优化正则表达…

    2025年3月13日
    200
  • 优化 Java 函数执行效率的最佳实践

    为了优化java 函数执行效率,最佳实践包括:1.使用本地数据结构;2.避免创建不必要的对象;3.缓存经常使用的值;4.避免不必要的循环;5.谨慎使用正则表达式。采用这些措施可显著提高函数效率,如获取员工详细信息的函数优化示例所示。 优化 …

    2025年3月13日
    200
  • UniApp实现异步编程的优化与实践

    uniapp实现异步编程的优化与实践 概述:随着移动应用的发展,用户对应用越来越高的性能要求,同时应对复杂的业务需求也是开发者的重要挑战之一。异步编程是一种提高应用性能和用户体验的重要方式。本文将介绍如何在UniApp中进行异步编程的优化与…

    编程技术 2025年3月13日
    200
  • 如何通过Vue的Keep-Alive组件优化应用的缓存性能

    如何通过vue的keep-alive组件优化应用的缓存性能 在Web应用的开发中,优化应用的性能一直是一个重要的目标。而在Vue.js这样的前端框架中,如何优化应用的缓存性能是一个常见的问题。Vue提供了一个名为Keep-Alive的组件,…

    编程技术 2025年3月13日
    200
  • Vue中使用keep-alive优化组件性能的方法

    vue中使用keep-alive优化组件性能的方法 随着Web应用的复杂化,前端性能优化变得越来越重要。在Vue框架中,我们可以通过使用keep-alive组件来优化组件的性能。keep-alive是Vue提供的一个内置组件,它可以缓存被包…

    编程技术 2025年3月13日
    200
  • Vue与应用性能优化的关系探析

    vue与应用性能优化的关系探析 引言:在当今的软件开发中,性能优化是至关重要的一个环节。一款应用的性能好坏直接影响用户体验,而Vue作为一款流行的JavaScript框架,也有助于提高应用的性能。本文将探讨Vue与应用性能优化的关系,并提供…

    编程技术 2025年3月13日
    200
  • Vue中使用slot优化组件的扩展性能

    vue中使用slot优化组件的扩展性能 在Vue开发中,组件是构建应用界面的重要模块。一个强大而有效的组件可以提高开发效率和代码复用性。然而,随着应用规模的增大,组件的扩展性往往成为一个挑战。为了解决这个问题,Vue提供了一个强大的功能——…

    编程技术 2025年3月13日
    200
  • 如何使用Vue和ECharts4Taro3实现数据可视化的细节优化和性能提升

    如何使用vue和echarts4taro3实现数据可视化的细节优化和性能提升 数据可视化是现代Web开发中一个重要的方向,它能够帮助用户更直观地理解和分析数据。Vue框架和ECharts4Taro3是在数据可视化领域中非常流行的工具。本文将…

    编程技术 2025年3月13日
    200

发表回复

登录后才能评论