-- Create table
create table T110JQ
(
JQNO varchar2(20) not null,
JQCHARA varchar2(20),
JQXZDM varchar2(20),
SSDW varchar2(20),
BJTYPE02. varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table T110JQ
add constraint JQNO primary key (JQNO);
==============================================================================
-- Create table
create table TJQXZDM
(
JQXZCODE varchar2(20) not null,
BZJQXZDM varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table TJQXZDM
add constraint JQXZCODE primary key (JQXZCODE);
==============================================================================
-- Create table
create table JL
(
DWCODE varchar2(20) not null,
BZDWCODE varchar2(20),
BZDWNAME varchar2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints
alter table JL
add constraint DWCODE primary key (DWCODE);
==============================================================================
T110JQ表数据
JQNO JQCHARA JQXZDM SSDW BJTYPE
1 1 刑事案件 1001 445821 亲临
2 2 行政案件 1002 445822 亲临
3 3 民事案件 1003 445823 亲临
4 4 行政案件 1004 445821 亲临
TJQXZDM表数据
JQXZCODE BZJQXZDM
1 5 1001
2 6 1002
3 7 1003
4 8 1004
JL表数据
DWCODE BZDWCODE BZDWNAME
1 9 445821 芙蓉区分局
2 10 445821 万家丽派出所
3 11 445821 马王堆派出所
4 12 445822 天心区分局
5 13 445823 下河街派出所
6 14 445823 开福区派出所
========================================================
不去重的语句:
select t.jqno,t.*,z.* ,f.*
from T110JQ t,TJQXZDM z ,JL f
where t.jqxzdm=z.bzjqxzdm and f.bzdwcode=t.ssdw and t.bjtype='亲临' order by t.jqno DESC
得出的结果是:
JQNO JQNO JQCHARA JQXZDM SSDW BJTYPE JQXZCODE BZJQXZDM DWCODE BZDWCODE BZDWNAME
1 4 4 行政案件 1004 445821 亲临 8 1004 9 445821 芙蓉区分局
2 4 4 行政案件 1004 445821 亲临 8 1004 11 445821 马王堆派出所
3 4 4 行政案件 1004 445821 亲临 8 1004 10 445821 万家丽派出所
4 3 3 民事案件 1003 445823 亲临 7 1003 14 445823 开福区派出所
5 3 3 民事案件 1003 445823 亲临 7 1003 13 445823 下河街派出所
6 2 2 行政案件 1002 445822 亲临 6 1002 12 445822 天心区分局
7 1 1 刑事案件 1001 445821 亲临 5 1001 10 445821 万家丽派出所
8 1 1 刑事案件 1001 445821 亲临 5 1001 11 445821 马王堆派出所
9 1 1 刑事案件 1001 445821 亲临 5 1001 9 445821 芙蓉区分局
去重处理的语句:
select t.jqno,t.*,z.*,f.* from T110JQ t,TJQXZDM z,
(select * from (select rank() over(partition by bzdwcode order by dwcode desc) r,a.* from jl a) where r=1) f
where t.jqxzdm=z.bzjqxzdm and 1=1 and t.bjtype='亲临' and t.ssdw=f.bzdwcode
结果:
1 4 4 行政案件 1004 445821 亲临 8 1004 1 9 445821 芙蓉区分局
2 1 1 刑事案件 1001 445821 亲临 5 1001 1 9 445821 芙蓉区分局
3 2 2 行政案件 1002 445822 亲临 6 1002 1 12 445822 天心区分局
4 3 3 民事案件 1003 445823 亲临 7 1003 1 14 445823 开福区派出所
总结关键是JL表的去重,只取第一条语句:
(select * from (select rank() over(partition by bzdwcode order by dwcode desc) r,a.* from jl a) where r=1) f