oracle sql语句高手请进,为什么这句话无法执行,好像上了锁,来解一下吧!

signboy 2001-07-16 11:52:25
这句话无法执行,好像上了锁,两个子查询访问相同(大多数)的几个表,分别执行没问题,合在一块,就不行了!

select aa.fahuor,aa.chepihao,aa.price - bb.price dd
from
(select f.chepihao chepihao,f.fahuor fahuor,round((a.value_s+a.value_x)*a.bijia*b.bijia*c.bijia*d.bijia*e.bijia_a*e.bijia_kp*decode(sign(e.qnet_zuidi-f.qnet),1,0,1)/2,1) price
from meijia_bijia a,meijia_bijia b,meijia_bijia c,meijia_bijia d,meijia_hetong e,tcepihao f
where a.bijiacont='Qnet.ar' and b.bijiacont='Vdaf' and c.bijiacont='Std' and d.bijiacont='Aar'
and e.kuangming=f.kuangming
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)>a.value_s and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)<=a.value_x and f.Vdaf>b.value_s and f.Vdaf<=b.value_x
and f.stad>c.value_s and f.stad<=c.value_x and f.aar>d.value_s and f.aar<=d.value_x
and e.kuangming='0107'
and to_char(f.fahuor,'MM/YY')='06/01' WITH READ ONLY ) aa ,
(select f.chepihao chepihao,f.fahuor fahuor,round((a.value_s+a.value_x)*a.bijia*b.bijia*c.bijia*d.bijia*e.bijia_a*e.bijia_kp*decode(sign(e.qnet_zuidi-f.qnet),1,0,1)/2,1) price
from meijia_bijia a,meijia_bijia b,meijia_bijia c,meijia_bijia d,meijia_hetong e,schepihao f
where a.bijiacont='Qnet.ar' and b.bijiacont='Vdaf' and c.bijiacont='Std' and d.bijiacont='Aar'
and e.kuangming=f.kuangming
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)>a.value_s and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)<=a.value_x and f.Vdaf>b.value_s and f.Vdaf<=b.value_x
and f.stad>c.value_s and f.stad<=c.value_x and f.aar>d.value_s and f.aar<=d.value_x
and e.kuangming='0107'
and to_char(f.fahuor,'MM/YY')='06/01' WITH READ ONLY ) bb
where aa.fahuor=bb.fahuor and aa.chepihao=bb.chepihao ;
...全文
191 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldwain 2001-07-20
  • 打赏
  • 举报
回复
呵呵。。。
signboy 2001-07-20
  • 打赏
  • 举报
回复
结果呱呱叫,与select /*+ NO_MERGE(aa) NO_MERGE(bb) */ aa.fahuor,aa.chepihao,aa.price - bb.price dd 的效果是一样的,
其实不加夜市可以的,但好像需要4\5分钟,

我就说,oracle 是狗屎,

oldwain 2001-07-20
  • 打赏
  • 举报
回复
分数无所谓。
但一定要告诉我结果!
oldwain 2001-07-18
  • 打赏
  • 举报
回复
试试no_merge hint。
select /*+ NO_MERGE(aa) NO_MERGE(bb) */ aa.fahuor,aa.chepihao,aa.price - bb.price dd .............


不能确定是否一定管用, 但不妨一试.
把结果告诉我.
signboy 2001-07-18
  • 打赏
  • 举报
回复
没有任何出错信息,语法完全正确,每个子查询都顺利通过,
症状就是保持查询状态,但不返回任何结果,
数据量不是很大,

oldwain 2001-07-18
  • 打赏
  • 举报
回复
能否告知出错信息?

如果是有关temp表空间方面的错误,原因可能是:
由于自连接时没有连接条件,可能会形成很大的笛卡儿结果集,从而造成temp表空间不够。
signboy 2001-07-17
  • 打赏
  • 举报
回复
其实,解决一个问题有好多办法,我找了一个更好的,
把select的数据分别update到一张表的不同字段,然后,对这两个字段作差,ok!
但是,我不理解的是,为什么两个select 语句得出的结果连接之后,为什么不行,正如上面!
有机会,我把上述语句逐个减少,直到通过!但我还是想知道大家的看法/
hailong525 2001-07-16
  • 打赏
  • 举报
回复
这种情况下,跟锁没有关系!
hailong525 2001-07-16
  • 打赏
  • 举报
回复
1.不妨到sqlPlus下执行一下!
2.有些工具限制sql语句的字符数!
3.一帮情况下,若分开能够执行的话,合在一起应该没问题!
signboy 2001-07-16
  • 打赏
  • 举报
回复
还有,如何察看锁的情况
Stingray 2001-07-16
  • 打赏
  • 举报
回复
你用的是什么方法? 如果在windows下运行这么大的查询,我认为还是用SQL好一点
signboy 2001-07-16
  • 打赏
  • 举报
回复
看来今天没高人。
问题已解决,不过是用其他办法,!
但我仍然想知道,这句化为什么不行,我想原因有以下可能,希望来人能证实:
1。oracle中只能允许至多7个自连接(我用了8个),
2。oracle中不允许连接的表超过12个
3。oracle不支持大的查询
4。oracle是狗屎



signboy 2001-07-16
  • 打赏
  • 举报
回复
就是在sqlPlus里执行的呀!
为什么和锁没关系,
给大家结构化一下,
select aa.fahuor,aa.chepihao,aa.price - bb.price dd
from
(select f.chepihao chepihao,f.fahuor fahuor,
round((a.value_s+a.value_x)*a.bijia*b.bijia*c.bijia*d.bijia*e.bijia_a*e.bijia_kp*decode(sign(e.qnet_zuidi-f.qnet),1,0,1)/2,1) price
from meijia_bijia a,meijia_bijia b,meijia_bijia c,meijia_bijia d,meijia_hetong e,tcepihao f
where a.bijiacont='Qnet.ar' and b.bijiacont='Vdaf'
and c.bijiacont='Std' and d.bijiacont='Aar'
and e.kuangming=f.kuangming
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)>a.value_s
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)<=a.value_x and f.Vdaf>b.value_s and f.Vdaf<=b.value_x
and f.stad>c.value_s and f.stad<=c.value_x and f.aar>d.value_s
and f.aar<=d.value_x
and e.kuangming='0107'
and to_char(f.fahuor,'MM/YY')='06/01' WITH READ ONLY
) aa ,
(select f.chepihao chepihao,f.fahuor fahuor,
round((a.value_s+a.value_x)*a.bijia*b.bijia*c.bijia*d.bijia*e.bijia_a*e.bijia_kp*decode(sign(e.qnet_zuidi-f.qnet),1,0,1)/2,1) price
from meijia_bijia a,meijia_bijia b,meijia_bijia c,meijia_bijia d,meijia_hetong e,schepihao f
where a.bijiacont='Qnet.ar' and b.bijiacont='Vdaf' and c.bijiacont='Std' and d.bijiacont='Aar'
and e.kuangming=f.kuangming
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)>a.value_s
and decode(sign(f.qnet-qnet_zuigao),-1,f.qnet,0,qnet_zuigao,1,qnet_zuigao)<=a.value_x
and f.Vdaf>b.value_s and f.Vdaf<=b.value_x
and f.stad>c.value_s and f.stad<=c.value_x and f.aar>d.value_s and f.aar<=d.value_x
and e.kuangming='0107'
and to_char(f.fahuor,'MM/YY')='06/01' WITH READ ONLY
) bb
where aa.fahuor=bb.fahuor and aa.chepihao=bb.chepihao ;
2024 年 Uber 乘车分析数据集 这个综合数据集包含 2024 年 Uber 运营的详细拼车数据,提供了有关预订模式、车辆性能、收入流、取消行为和客户满意度指标的丰富见解。 数据集概述 该数据集捕获了多种车辆类型的 148,770 个总预订,并提供了拼车作的完整视图,包括成功乘车、取消、客户行为和财务指标。 主要统计数据: 总预订量:148.77K 次乘车 成功率:65.96%(93K 完成骑行) 取消率:25%(37.43K 取消预订) 客户取消:19.15%(27K 乘车) 司机取消: 7.45% (10.5K 乘车) 数据模式 数据集包含以下列: 列名称 描述 Date 预订日期 Time 预订时间 Booking ID 每次行程预订的唯一标识符 Booking Status 预订状态(已完成、客户取消、司机取消等) Customer ID 客户的唯一标识符 Vehicle Type 车辆类型(Go Mini、Go Sedan、Auto、eBike/Bike、UberXL、Premier Sedan) Pickup Location 游乐设施的起点 Drop Location 乘车目的地 Avg VTAT 司机到达上车地点的平均时间(以分钟为单位) Avg CTAT 从取件到目的地的平均行程时间(以分钟为单位) Cancelled Rides by Customer 客户发起的取消标志 Reason for cancelling by Customer 客户取消原因 Cancelled Rides by Driver 驱动程序启动的取消标志 Driver Cancellation Reason 司机取消原因 Incomplete Rides 未完成骑行标志 Incomplete Rides Reason 不完整骑行的原因

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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