bill_head表
no_sys no_work site_id set_id
------------------------------
1 5113005 201 997
2 5113006 202 998
3 5113009 209 999no_sys 单据系统编号
no_work 单据编号
site_id 机构编号
set_id 设备编号
****************************
bill_detail表
no_sys item_sys
--------------
1 509
1 488
1 511
2 131
2 990
3 332no_sys 单据系统编号
item_sys 项目编号要查询出同一机构(bill_head.site_id相同)对同一台设备(bill_head.set_id相同)制作的不同单据(bill_head.no_sys不同)中,处理项目列表完全相同(bill_detail.item_sys)的单据。本人写的SQL效率很低,麻烦各位高手帮个忙!
一定及时给分!
no_sys no_work site_id set_id
------------------------------
1 5113005 201 997
2 5113006 202 998
3 5113009 209 999no_sys 单据系统编号
no_work 单据编号
site_id 机构编号
set_id 设备编号
****************************
bill_detail表
no_sys item_sys
--------------
1 509
1 488
1 511
2 131
2 990
3 332no_sys 单据系统编号
item_sys 项目编号要查询出同一机构(bill_head.site_id相同)对同一台设备(bill_head.set_id相同)制作的不同单据(bill_head.no_sys不同)中,处理项目列表完全相同(bill_detail.item_sys)的单据。本人写的SQL效率很低,麻烦各位高手帮个忙!
一定及时给分!
解决方案 »
- 求个区间合并的SQL
- linux as5下用./test.sh执行SH时报错,syntax error near unexpected token '(',请大哥大姐帮帮忙!
- 想在ORACLE另一个用户下建个触发器,触发我本地的用户中的表进行insert的,怎么做?
- 请教,使用Shell编写自动生成数据
- 救命啊,脚本问题!!!!!
- oracle基础问题,过程与包的使用方法
- 初学ORACLE不知道有哪本书比较好
- Oracle81密码
- 表A(i,j,k),表B(i,j),怎样往A中(B.i,B.j,2),如果B中没有行插入(NULL,NULL,1)?
- oracle存储过程的输入参数可以是数组吗?
- 如何导入整个数据库
- 请教3表实现一个结果集的sql写法
as
select no_sys,no_work from bill_head a,bill_head b,
(select item_sys from bill_head ,bill_detail where bill_head.no_sys = bill_detail.no_sys) cwhere
a.set_id = b.set_id and a.no_sys <> b.no_sysselect no_work from view_1,bill_detail c,bill_detail d where view_1.no_sys = c.no_sys and view_1.no_sys = d.no_sys and c.item_sys = d.item_sys ;
create or replace view_1
as
select no_sys,no_work from bill_head a,bill_head b,
where
a.set_id = b.set_id and a.no_sys <> b.no_sys------------------------------------------
select no_work from view_1,bill_detail c,bill_detail d where view_1.no_sys = c.no_sys and view_1.no_sys = d.no_sys and c.item_sys = d.item_sys ;
select a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
这样出来的结果就是
同一机构(bill_head.site_id相同)对
同一台设备(bill_head.set_id相同)制作的
完全相同(bill_detail.item_sys)的单据。select a.no_sys , a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.no_sys , a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
这样出来的结果就是
同一机构(bill_head.site_id相同)对
同一台设备(bill_head.set_id相同)制作的
同一单据(bill_head.no_sys相同)的
完全相同(bill_detail.item_sys)的单据。两个结果集的差就是你想的结果是不??语句如下:select * from (
select a.no_sys , a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.no_sys , a.site_id , a.set_id , b.item_sys
having count(*) > 1
minus
select a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.site_id , a.set_id , b.item_sys);
select a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
这样出来的结果就是
同一机构(bill_head.site_id相同)对
同一台设备(bill_head.set_id相同)制作的
完全相同(bill_detail.item_sys)的单据。select a.no_sys , a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.no_sys , a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
这样出来的结果就是
同一机构(bill_head.site_id相同)对
同一台设备(bill_head.set_id相同)制作的
同一单据(bill_head.no_sys相同)的
完全相同(bill_detail.item_sys)的单据。两个结果集的差就是你想的结果是不??语句如下:select * from (
select a.no_sys , a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.no_sys , a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
minus
select a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.site_id , a.set_id , b.item_sys);
select * from (
select a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.site_id , a.set_id , b.item_sys
having count(*) > 1 ;
minus
select a.no_sys , a.site_id , a.set_id , b.item_sys
from bill_head a ,
bill_detail b
where a.no_sys = b.no_sys
group by a.no_sys , a.site_id , a.set_id , b.item_sys
having count(*) > 1);