首先说明一下这两个表的关系,P_FREIGHT_SPEC 表中的数据在P_PUBLIC_POLICY里都有对应数据,相反则不一定。
现在我要按条件查询出两表都有的数据或者只有一个表(p_public_polciy)中含有的数据。为什么这个sql不能满足?谁能提供以下思路/代码?
select *
from P_PUBLIC_POLICY left join P_FREIGHT_SPEC F
on P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.UNITCODE = F.UNITCODE
AND P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.APPLYENDORSENO = F.APPLYENDORSENO
AND 3 > 2
AND P_PUBLIC_POLICY.APPLYNO = 'AHANHNE44207P000001X'
and p_public_policy.unitcode='3010100'
AND F.NUMBERPLATE='车牌'
现在我要按条件查询出两表都有的数据或者只有一个表(p_public_polciy)中含有的数据。为什么这个sql不能满足?谁能提供以下思路/代码?
select *
from P_PUBLIC_POLICY left join P_FREIGHT_SPEC F
on P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.UNITCODE = F.UNITCODE
AND P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.APPLYENDORSENO = F.APPLYENDORSENO
AND 3 > 2
AND P_PUBLIC_POLICY.APPLYNO = 'AHANHNE44207P000001X'
and p_public_policy.unitcode='3010100'
AND F.NUMBERPLATE='车牌'
解决方案 »
- 我在存储过程里面定义了一个游标,怎样执行存储过程后能把游标结果集像select语句一样显示出来?
- 有关自身连接的问题
- oralce 存储过程中使用变量表名,返回字段的值的问题
- imp 报错啊,,,大虾们,快来帮帮我啊~~~~!!!!!!!!!!!!
- 解决一个查询问题,不知能不能实现
- oracle 8i 为什么装在win 2003 server上狂报java.exe错?
- Oracle 函数可以返回cursor么??
- 高分买数据(各个国家名称和省份/州名)
- 哪里可以下载Oracle 8i/9i/10i?
- WINDOWS 2008 搭建ORACLE 时报错,-配置网络基础结构配置失败-插件的执行方法失败
- 自动备份语句出错
- 又一个很简单的oracle 小问题!!
from P_PUBLIC_POLICY left join P_FREIGHT_SPEC F
on P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.UNITCODE = F.UNITCODE
AND P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.APPLYENDORSENO = F.APPLYENDORSENO
AND F.NUMBERPLATE='车牌' -- 这一句是连接条件还是检索条件,你考虑清楚
where -- 与P_FREIGHT_SPEC F无关的条件别写在连接条件里
3 > 2 -- 你这有什么用
AND P_PUBLIC_POLICY.APPLYNO = 'AHANHNE44207P000001X'
and p_public_policy.unitcode='3010100'
from P_PUBLIC_POLICY left join P_FREIGHT_SPEC F
on P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.UNITCODE = F.UNITCODE
AND P_PUBLIC_POLICY.APPLYNO = F.APPLYNO
AND P_PUBLIC_POLICY.APPLYENDORSENO = F.APPLYENDORSENO
AND F.NUMBERPLATE='车牌'
WHERE
3 > 2
AND P_PUBLIC_POLICY.APPLYNO = 'AHANHNE44207P000001X'
and p_public_policy.unitcode='3010100'
select * from
(select *
from P_PUBLIC_POLICY t where t.unitcode='3010100'and t.APPLYNO = 'AHANHNE44207P000001X' ) aa
left join(select * from P_FREIGHT_SPEC F where F.NUMBERPLATE='车牌' ) bb
on aa.APPLYNO = bb.APPLYNO
AND aa.UNITCODE =bb.UNITCODE
AND aa.APPLYNO =bb.APPLYNO
AND aa.APPLYENDORSENO = bb.APPLYENDORSENO
AND 3 > 2------???后面这个是什么条件???
前面那样写估计就没问题
2# 我试了只能查出两表都有的数据。
6# 也是一样。
再补充两句:
F.NUMBERPLATE='车牌' 只有两种情况才用到这个检索条件
就是unitcode=‘13070900’和unitcode=‘13072800’
再帮忙看下!
--把你的表结构和相应的需求都说清楚!select a.*,b.* from
(select * from P_PUBLIC_POLICY WHERE APPLYNO = 'AHANHNE44207P000001X' and unitcode='3010100') a
left join
(select * from P_FREIGHT_SPEC where NUMBERPLATE='车牌')b
ON a.APPLYNO = b.APPLYNO
AND a.UNITCODE = b.UNITCODE
AND a.APPLYNO = b.APPLYNO
AND a.APPLYENDORSENO = b.APPLYENDORSENO
;
A 表中的数据在B里都有对应数据存在,
但是B表里的数据在A表里不一定有对应的数据存在。
如:
A表结构:id name unitcode applyno
1 张三 111 adf
2 李四 222 wer
B表 id score object applyno
1 80 4 adf
现在我要按条件查询出:
同一个sql只是检索条件的值不同。能单独查出张三信息 ,单独查询出李四信息的sql 。
注意一下条件:
当unitcode为‘111’时 则把object当做一个查询条件。
(说明一下unitcode为111 这B表里一定有表A对应的数据。
unitcode不为‘111’表B中则没有与表A对应的数据)