table: a fields : id ,pl_cd,price,qty
table: b fields : id ,pl_cd,price,qty data
a.id pl_cd price qty
1 ab 1.00 100
2 ac 2.00 200
3 ad 3.00 300b.id pl_cd price qty
1 ab 1.00 100
3 ad 3.00 300
4 hh 4.00 400
5 ww 5.00 500
想要的结果是
id pl_cd price qty id pl_cd price qty Match
1 ab 1.00 100 1 ab 1.00 100 Y
2 ac 2.00 200 N
3 ad 3.00 300 3 ad 3.00 300 Y
4 hh 4.00 400 N
5 ww 5.00 500 N
请教 如何写这个比较的sql ?
条件: 1. 如果 a 或者 b 对应的数据没有,那match 都为N
2. 如果a.price <> b.price 或者是 a.qty<> b.qty 或 a.pl_cd<>b.pl_cd 或 a.id<>b.id
则match 也是N
3. 这个表是没有键关系的, 只是想对比一下这两个表的数据,有什么思路呢?
两个表同时order by id, pl_cd, price,qty? 然后怎么对比?
table: b fields : id ,pl_cd,price,qty data
a.id pl_cd price qty
1 ab 1.00 100
2 ac 2.00 200
3 ad 3.00 300b.id pl_cd price qty
1 ab 1.00 100
3 ad 3.00 300
4 hh 4.00 400
5 ww 5.00 500
想要的结果是
id pl_cd price qty id pl_cd price qty Match
1 ab 1.00 100 1 ab 1.00 100 Y
2 ac 2.00 200 N
3 ad 3.00 300 3 ad 3.00 300 Y
4 hh 4.00 400 N
5 ww 5.00 500 N
请教 如何写这个比较的sql ?
条件: 1. 如果 a 或者 b 对应的数据没有,那match 都为N
2. 如果a.price <> b.price 或者是 a.qty<> b.qty 或 a.pl_cd<>b.pl_cd 或 a.id<>b.id
则match 也是N
3. 这个表是没有键关系的, 只是想对比一下这两个表的数据,有什么思路呢?
两个表同时order by id, pl_cd, price,qty? 然后怎么对比?
解决方案 »
- 统计类sql语句求助
- Oracle TRANSACTION 的问题
- ora-01034 ora-27101
- 在SqlServer触发器中,'MSDASQL'分布式事务无法启动.....!
- 如何避免oracle导入时出现死锁
- PL——SQL 问题?
- 请问有什么好的调试PL/SQL的工具?谢谢
- 错误:无法在连接到调度程序时启动/关闭数据库
- home/oracle/app/oradata/orcl/下的文件是什么文件,可以删除吗?
- select j.user_id,s.username from AR_JPUSH_USER j join sysuser s on s.userid = j.
- jsp网页中不能向oracle数据库表中update或insert中文数据
- UTL_FILE.FREMOVE 无法移动属性为只读的文件
with a as(
select 1 id,'ab' pl_cd,1.00 price,100 qty from dual union all
select 2, 'ac', 2.00, 200 from dual union all
select 3, 'ad', 3.00, 300 from dual),
b as(
select 1 id,'ab' pl_cd,1.00 price,100 qty from dual union all
select 3, 'ad', 3.00, 300 from dual union all
select 4, 'hh', 4.00, 400 from dual union all
select 5, 'ww', 5.00, 500 from dual)
select a.*,b.*,
(case when a.id=b.id and a.pl_cd=b.pl_cd and a.price=b.price and a.qty=b.qty
then 'Y'
else 'N' end)
from a full join b on a.id=b.id
ID PL PRICE QTY ID PL PRICE QTY (
---------- -- ---------- ---------- ---------- -- ---------- ---------- -
1 ab 1 100 1 ab 1 100 Y
3 ad 3 300 3 ad 3 300 Y
2 ac 2 200 N
5 ww 5 500 N
4 hh 4 400 N