우선, 아래에 제 글이 있는데도 불구하고, 추가적으로 질문 드려 죄송합니다.
제가 드리고 싶은 질문으로는, 매개변수에 테이블 명을 집어넣어 FUNCTION내의 BEGIN의 계산식의 처리에 따라 결과를 출력하는, FUNCTION을 만들고 싶습니다.
a테이블
NAME | SUB_NAME | 일련번호 | 원산지 | 출하지 | |
채소 | 무 | S0010 | 대한민국 | 강원도 | |
채소 | 배추 | S0020 | 대한민국 | 부산 | |
채소 | 오이 | S0030 | 대한민국 | 인천 | |
채소 | 호박 | S0040 | 대한민국 | 인천 |
B 테이블
NAME | 일련번호 | PRICE | 원산지 | 출하지 |
고랭지배추 | S0020 | 25000 | 대한민국 | 부산 |
고랭지배추 | S0178 | 2300 | 수입 | 강원도 |
어딘가의 배추 | S0179 | 2150 | 수입 | 강원도 |
배추 | S0020 | 12590 | 대한민국 | 부산 |
다음과 같은 테이블이 존재할 시에
이하의 결과를 출력하고 싶습니다 이 때,
비교 값이 되는 키는 일련번호와 원산지 출하지로 설정하고 싶습니다.
이 때 기동문으로서는 select * from [function_name] ({a테이블명}, {b테이블명}) 과 같이 하고 싶습니다.
SUB_NAME | 일련번호 | 원산지 | 출하지 | NAME | 일련번호 | 원산지 | 출하지 |
배추 | S0020 | 대한민국 | 부산 | 고랭지배추 | S0020 | 대한민국 | 부산 |
배추 | S0020 | 대한민국 | 부산 | 배추 | S0020 | 대한민국 | 부산 |
제 나름대로 적어본 쿼리는
create or replace function table_diff ( table_a name[] default '{}' ,table_b name[] default '{}' ) returns table AS $$ BEGIN SELECT a.* FROM table_a a LEFT JOIN table_b b ON a.serial_code = b.serial_code a.origin = b.origin a.shipping = b.shipping END; $$ language plpgsql;
이러한 식인데... 인터넷을 통해서도 조사해보고 구루비를 통해서 이전에 비슷한 질문이 없었나 찾아보았으나...
뭐가 부족한지 뭐가 필요한지... 모호한 상황에 봉착하여, 도움을 요청드립니다
다시한번, 아래 제 글이 있음에도 불구하고 다시 글을 올린 점 죄송하게 생각합니다.
이상 잘 부탁드립니다.