解决方案 »
- Java程序和在Oracle数据库中调用相同的SQL查询语句,结果却不相同
- 一个数据库可以有二个例程么?
- plsql连接ORACLE8报错
- java如何读取plsql的对象数组了?
- 可以 \ 如何 把 用户 a的包 f 转向执行 用户 b 的包 f
- VC++.NET + ORACLE 程序正常运行一段时间后,出现异常:ROW-00014:当数据库中的数据已经更改时,不能更新列!哪位高人知道线索,请帮小弟
- oracle 为什么导入不了数据
- 三个问题:
- 服务器端和客户端能否采用不用的ORACLE8I版本。
- 求大神给个linux下安装rac集群详细教程或有这中书的推荐。
- hibernate 查询语句
- 求一个存储过程的写法 在线等!!谢谢了
--外连接
select a.电子号,a.规格,a.型号,a.起始号码,a.终止号码,
b.电子号,b.规格,b.型号,b.起始号码,b.终止号码
from a,b
where a.电子号=b.电子号(+)
b.电子号,b.规格,b.型号,b.起始号码,b.终止号码
from a
join b
on a.电子号 = b.电子号
and a.规格 = b.规格
and a.起始号码 = b.起始号码
and to_number(b.起始号码) >= to_number(a.起始号码)
and to_number(b.终止号码) <= to_number(a.终止号码)
那我请问你 0001电子号 A表和B表的型号不同,一个是la9 一个是a9,为什么放在一起了呢
如果是按你这样说的,连接条件多加两个就可以啊
where a.电子号=b.电子号(+) and a.规格=b.规格(+) and b.型号=a.型号(+)
with a as(
select '0001' 电子号,'11' 规格, '1a9' 型号, '000001' 起始号码, '0000025' 终止号码 from dual
union all
select '0001', '12', '1a23', '000001', '0000025' from dual
union all
select '0002', '12', 'a90', '010010', '0200035' from dual
union all
select '0003', '3', '390', '034040', '034065' from dual
),
b as(
select '0001' 电子号,'11' 规格, '1a9' 型号, '000001' 起始号码, '000009' 终止号码 from dual
union all
select '0001', '11', '1a9', '000010', '000024' from dual
union all
select '0001', '11', '1a9', '000010', '000025' from dual
union all
select '0002', '12', 'a90', '010010', '0200035' from dual
)
select a.电子号,a.规格,a.型号,a.起始号码,a.终止号码,
b.电子号,b.规格,b.型号,b.起始号码,b.终止号码
from a,b
where a.电子号=b.电子号(+) and a.规格=b.规格(+) and a.型号=b.型号(+)
order by 1电子号 规格 型号 起始号码 终止号码 电子号 规格 型号 起始号码 终止号码
0001 11 1a9 000001 0000025 0001 11 1a9 000001 000009
0001 11 1a9 000001 0000025 0001 11 1a9 000010 000024
0001 11 1a9 000001 0000025 0001 11 1a9 000010 000025
0001 12 1a23 000001 0000025
0002 12 a90 010010 0200035 0002 12 a90 010010 0200035
0003 3 390 034040 034065 --请问上面结果倒数第三天你的需求为什么给过滤掉?
--麻烦你把你的需求先说明白了,再来提问好不好?
--就只给一个结果,屁业务逻辑描述都没的,让我们去猜你的需求啊?
--这条记录也符合你说的,如果表B没数据,应该有NULL数据
--简直浪费时间,走了~~
--您建立的表B里面只有四条数据,所以倒数第三条有问题。
--第二,没把业务需求描述清楚确实是个问题。其实这个问题是这样的:
表A记录是每个车间领用的设备:电子号对应某个车间,号码段是设备编号
表B记录是每个车间领用的设备归还情况:电子号对应某个车间,号码段是设备编号
现在求设备的明细状态