一个sql有点难度的问题 两百分送上(200分)

  • 主题发起人 主题发起人 beyondbit
  • 开始时间 开始时间
B

beyondbit

Unregistered / Unconfirmed
GUEST, unregistred user!
oracle里我有张这样的表(表1),包括三个字段
name,dep_code,item_code;
张三 1110 01
张三 1110 02
张三 1110 03
李四 111001 01
李四 111001 02
王五 111002 02
田七 111003 01
.....
表二
张三 1110 01

要得到的结果是:
张三 1110
张三 111001
张三 111002
......
我现在想得到这样的一组数据,以名字为例
张三,他对应的dep_code是4位数字,比如1110,
我要取得1110这个代码以后的所有记录,并把名字都默认位张三,比如记录
李四 的111001,同时我要查找张三所对应的item_code,有item_code的记录就刷选出来,没有的就去掉
这个sql要怎么写,哪位高手帮我看看 ,谢谢
我写了一个存储过程,表1表示dep_code是4位数字的记录,表2是所有记录的表
CREATE OR REPLACE PROCEDURE bb
-- Local variables here
is
cursor cur1
is
select distinct name,dep_code from 表1;
begin
for fcur1 in cur1 loop
insert into b_test(xm,default_dep)
select distinct name,dep_code from 表2 where dep_code like fcur1.dep_code||'%'
and name=fcur1.name;
end loop;
end;
 
高手都哪去了 ?
 
后退
顶部