数据查询

wynlc 2012-12-17 12:31:23
表tb


表result


由表tb通过查询得到表result规则如下:
1、通过表tb前工序工作代码字段找到前工序,如果有多个前工序就取时间(计划结束时间、实际结束时间)最晚的那道工序的时间(计划结束时间、实际结束时间),没有前工序的就为空
2、本工序实际开始时间为空或者前工序实际结束时间为空那么 本工序实际开始时间-前工序实际结束时间 为空

 create table tb
(
JO001 nvarchar(50),
JO002 nvarchar(50),
JO005 nvarchar(50),
JO011 nvarchar(50),
JO012 nvarchar(50),
JO013 nvarchar(50),
JO014 nvarchar(50),
JO042 nvarchar(50)
)

insert into tb
select'PZC141:1410','PZC141','GC管板NC切割','2012/10/11 09:00:00','2012/10/11 16:00:00','2012/10/11 09:00:00','2012/10/11 16:00:00',NULL
union
select'PZC141:1420','PZC141','GC管板组装','2012/10/14 12:00:00','2012/10/17 15:00:00','2012/10/14 12:00:00','2012/10/17 15:00:00','PZC141:1410'
union
select'PZC141:1430','PZC141','GC管板打定位孔','2012/10/20 16:00:00','2012/10/20 19:00:00','2012/10/20 16:00:00','2012/10/20 19:00:00','PZC141:1420'
union
select'PZC141:1440','PZC141','GC管板加工','2012/10/21 10:00:00','2012/10/22 00:00:00','2012/10/21 10:00:00','2012/10/22 00:00:00','PZC141:1430'
union
select'PZC141:1445','PZC141','GC管板打定位孔','2012/10/20 19:00:00','2012/10/20 21:00:00','2012/10/20 19:00:00','2012/10/20 21:00:00','PZC141:1420'
union
select'PZC141:1446','PZC141','GC管板加工','2012/10/21 09:00:00','2012/10/22 00:00:00','2012/10/21 09:00:00','2012/10/22 00:00:00','PZC141:1445'
union
select'PZC141:1450','PZC141','GC管板脱脂','2012/10/23 09:00:00','2012/10/23 10:00:00','2012/10/23 09:00:00','2012/10/23 10:00:00','PZC141:1440;PZC141:1446'
union
select'QZC439:1175','QZC439','AE胀管','2012/12/10 09:00:00','2012/12/11 08:20:00','2012/12/10 09:00:00','2012/12/11 08:20:00',NULL
union
select'QZC439:1660','QZC439','GC胀管','2012/12/01 15:00:00','2012/12/02 10:00:00','2012/12/01 15:00:00','2012/12/02 10:00:00','QZC439:1650'
union
select'QZC439:1960','QZC439','GH胀管','2012/12/11 08:00:00','2012/12/11 08:53:00','2012/12/11 08:00:00','2012/12/11 08:19:00','QZC439:1910'
union
select'QZC439:2000','QZC439','全体配管','2012/12/12 08:28:00','2012/12/20 11:27:32','2012/12/12 08:28:00',NULL,'QZC439:1175;QZC439:1660;QZC439:1960'
union
select'QZC439:2030','QZC439','整机气密','2012/12/20 13:27:32','2012/12/20 13:27:33',NULL,NULL,'QZC439:2000'

...全文
322 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wynlc 2012-12-19
  • 打赏
  • 举报
回复
各路高人 还有好方法吗
wynlc 2012-12-18
  • 打赏
  • 举报
回复
引用 16 楼 DBA_Huangzj 的回复:
换全文检索功能试试吧
能具体说说吗
發糞塗牆 2012-12-18
  • 打赏
  • 举报
回复
换全文检索功能试试吧
wynlc 2012-12-18
  • 打赏
  • 举报
回复
还有没有其它的方法实现这个功能
  • 打赏
  • 举报
回复
两万条不会这么慢吧 看看有没有别的原因咯
wynlc 2012-12-18
  • 打赏
  • 举报
回复
引用 12 楼 TravyLee 的回复:
有多少条数据啊?都是表扫描 like'%。。。。。%'这个是不能走索引的了
两万条
wynlc 2012-12-18
  • 打赏
  • 举报
回复
select
    JO001,
    JO002,
    JO005,
    convert(varchar(19),(select MAX(JO011) from APSJOB b where  a.JO042  like '%'+ b.JO001+'%'),120)
from
    APSJOB a
也不快
  • 打赏
  • 举报
回复
有多少条数据啊?都是表扫描 like'%。。。。。%'这个是不能走索引的了
wynlc 2012-12-18
  • 打赏
  • 举报
回复
引用 9 楼 TravyLee 的回复:
引用 7 楼 wynlc 的回复:SQL code?1234567891011select JO001, JO002, JO005, convert(varchar(19),(select top 1 JO011 from tb b where b.JO042 like '%'+a.JO001+'%' order by JO011 desc),……


执行了20多分钟还没完成
  • 打赏
  • 举报
回复
引用 7 楼 wynlc 的回复:
SQL code?1234567891011select JO001, JO002, JO005, convert(varchar(19),(select top 1 JO011 from tb b where b.JO042 like '%'+a.JO001+'%' order by JO011 desc),120) +'-'+conv……
那没办法的 这样用到了模糊查询 索引基本上没作用了 你把执行计划贴出来看看嘛
wynlc 2012-12-18
  • 打赏
  • 举报
回复
引用 6 楼 TravyLee 的回复:
那你的意思是什么个意思?
那两张图片 数据描述的比较清楚
wynlc 2012-12-18
  • 打赏
  • 举报
回复
select
    JO001,
    JO002,
    JO005,
    convert(varchar(19),(select top 1 JO011 from tb b where  b.JO042  like '%'+a.JO001+'%' order by JO011 desc),120)
    +'-'+convert(varchar(19),(select top 1 JO012 from tb c where  c.JO042 like '%'+a.JO001+'%' order by JO012 desc),120)
    --,
    --convert(varchar(19),(select top 1 JO013 from tb d where a.JO001=d.JO042 order by JO013 desc),120)
    --+'-'+convert(varchar(19),(select top 1 JO014 from tb e where a.JO001=e.JO042 order by JO014 desc),120)
from
    tb a
我这样改了下 执行速度好慢
  • 打赏
  • 举报
回复
那你的意思是什么个意思?
wynlc 2012-12-18
  • 打赏
  • 举报
回复
引用 4 楼 TravyLee 的回复:
SQL code?123456789101112select JO001, JO002, JO005, convert(varchar(19),(select top 1 JO011 from tb b where a.JO001=b.JO042 order by JO011 desc),120) +'-'+convert(varchar(1……
a.JO001=b.JO042这个有问题 因为JO042字段可能包含多个JO001 'QZC439:1175;QZC439:1660;QZC439:1960'
  • 打赏
  • 举报
回复


select
	JO001,
	JO002,
	JO005,
	convert(varchar(19),(select top 1 JO011 from tb b where a.JO001=b.JO042 order by JO011 desc),120)
	+'-'+convert(varchar(19),(select top 1 JO012 from tb c where a.JO001=c.JO042 order by JO012 desc),120),
	convert(varchar(19),(select top 1 JO013 from tb d where a.JO001=d.JO042 order by JO013 desc),120)
	+'-'+convert(varchar(19),(select top 1 JO014 from tb e where a.JO001=e.JO042 order by JO014 desc),120)
from
	tb a

为空的没处理
jian295365 2012-12-18
  • 打赏
  • 举报
回复
不会写 帮顶
發糞塗牆 2012-12-18
  • 打赏
  • 举报
回复
这是一个2005以后新加的功能,说白了就类似搜索引擎,但是如果你应用不广的话就没必要用这个了,这个配置也有点麻烦。
wynlc 2012-12-17
  • 打赏
  • 举报
回复
自己顶一下 难道问题没描述清楚
版本:presto-server-0.214.tar软件版本 presto-cli-0.214-executableCentOS71、presto的起因 hadoop ---hdfs----MR(java)-----hivehive底层原理用MR,速度比较慢,公司hadoop集群主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询的需求,现在主要借助于hive提供业务人员的查询。hive是基于MR类的SQL查询工具,他会输入的查询SQL解析为MapReduce,能极大的降低使用大数据门槛,让一般的业务人员可以直接准对大数据进行查询,但是有一个利弊,它的查询基于MR,会让人等待比较着急,等待的时间可能是几个小时或者一天。 spark基于内存提高改良的hive,sql,现在factbook在hive上面开发一套利器,准对hive可以通过sql语句快速查询,presto。2、Facebook为何开发Presto  Facebook的2011的数据仓库存储在少量大型hadoopfs集群,Hive是FaceBook在几年前专门为Hadoop打造的一款数据仓库工具,在以前,facebook的科学家和分析师一直靠hive进行数据分析.但hive使用MR作为底层计算框架,是专为批处理设计的,但是随着数据的不断增多,使用hive进行一个简单的数据查询可能要花费分钟或者几个小时,显然不能满足查询需求,FaceBooke也调研了其他比hive更快的工具,但是他们需要在功能有限的条件下做简单操作,以至于无法操作Facebook庞大的数据要求。2012年开始研究自己的框架--presto,每日可以超过1pb查询,而且速度比较快,faceBook声称Presto的性能比hive要好上10倍或者100倍,presto和hive都是facebook开发的 Presto是一个开源的分布式SQL查询引擎,适用于交互式查询数据量支持GB到PB字节。Presto的设计和编写完全是为了解决Facebook这样规模的商业数据仓库交互式分析和处理速度的问题Presto可以做什么 Presto支持在线数据查询,包括Hive kafka Cassandra关系数据库以及专门数据存储,一条Presto查询可以将多个数据源进行合并,可以跨越整个组织进行分析。Presto以分析师的需求作为目标,他们期望相应速度小于1秒到几分钟,Presto要么在使用速度的快的昂贵的商业方案,提高内存,要么是消耗大量的硬件进行快速查询。(128G 64G)本套课程教给如何在企业环境中使用Presto技术。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧