2017-05-21 13 views
0

내가 절차저장 프로 시저

사업 (abnnumber, 이름)

business_industry (abnnumber, industryid)

산업 (industryid, unionid)

trade_union에 사용되는 4 개 테이블이

저는 한 줄에 노동 조합 표제를 얻고 모든 사업 ABNNUMBER와 사업 명을 여러 줄로 할당 받도록 지정되었습니다. 저장 프로 시저. I 시도 어떤

은 :

CREATE [OR REPLACE] PROCEDURE INDUSTRY_INFORMATION 
[enter image description here][1](P_INDUSTRYID in integer, 
P_UNIONTITLE OUT VARCHAR2, 
P_BUSINESSNAME OUT VARCHAR2) AS 
BEGIN 
SELECT TRADE_UNION.UNIONTITLE, BUSINESS.BUSINESSNAME INTO    
P_UNIONTITLE,P_BUSINESSNAME 
FROM BUSINESS inner join BUSINESS_INDUSTRY ON 
BUSINESS.ABNNUMBER=BUSINESS_INDUSTRY.ABNNUMBER 
INNER JOIN INDUSTRY ON BUSINESS_INDUSTRY.INDUSTRYID=INDUSTRY.INDUSTRYID 
INNER JOIN TRADE_UNION ON INDUSTRY.UNIONID=TRADE_UNION.UNIONID; 
END; 

Sample data is in the link http://www.mediafire.com/file/8c4dwn4n88n8a42/strd_procedure.txt 

필요한 출력

UNIONTITLE (한 줄)

ABNNUMBER 업체명 (다음 라인)이어야

`[1] : https://i.stack.imgur.com/sGuwe.jpg

+0

당신은 테이블 데이터 또는 쿼리가 필요하십니까? –

+1

절차 코드는 ** 벤더에 따라 달라질 수 있습니다 ** - mysql, postgresql, sql-server, oracle 또는 db2 중 어떤 것을 사용할지 지정하기 위해 태그를 추가하십시오. 전적으로. –

+0

데이터 및 출력 형식을 제공했습니다. –

답변

0

나는 다음과 같은 것이 필요하다고 생각합니다. :

create or replace procedure industry_info is 
begin 
    for r in (
    select tu.uniontitle ut, 
      listagg('['||b.abnnumber||'] '||b.businessname, ', ') 
      within group (order by b.businessname) blist 
     from business b 
     join business_industry bi on b.abnnumber = bi.abnnumber 
     join industry i on bi.industryid = i.industryid 
     join trade_union tu on i.unionid = tu.unionid 
     group by tu.uniontitle) 
    loop 
    dbms_output.put_line(r.ut); 
    dbms_output.put_line(r.blist); 
    dbms_output.put_line('-----'); 
    end loop; 
end; 

기능 listagg 나중에 오라클 11g 또는 사용할 수 있습니다.

출력 :

Cleaners' Union 
[12345678912] Consolidated Proerty Services, [12345678929] Gold Cleaning Services, [12345678926] Home Cleaning Services, [12345678924] Shine Cleaning 
----- 
Construction Workers' Union 
[12345678920] Build a House, [12345678919] Construction Solutions, [12345678922] Joe's Rubbish Removal, [12345678918] Leak and Roof Repair, [12345678928] Muscle Rubbish Removals 
----- 
Electricians' Union 
[12345678916] Change the Fuse Electricals, [12345678921] Hire a Wire, [12345678917] Vicky Electricals 
----- 
Movers' Union 
[12345678913] Kohlan Movers, [12345678925] Moveit 
----- 
Mowers' Union 
[12345678923] Do it Right Mowers, [12345678911] James Mowers and Landscape 
----- 
Plumbers' Union 
[12345678927] 24X7 Plumbing Service, [12345678915] Anytime Plumbers, [12345678914] Pumbers Delivered 
-----