사용하는 DB : PostgreSQL 11.1
한상품의 주문 수량이 50일 경우 만약 그 상품의 박스 입수가 20이면
한줄로 입력된 50을 아래와 같이 해당 박스 입수 만큼 row를 만드는 쿼리를 어떻게 구현 할 수 있을까요? (켜서나 pl/pgsql반복문 사용하지 않고 query로만..)
CREATE TABLE public.prod_master (
prodcd varchar(10) NULL,
boxinqty int4 NULL --박스입수
);
CREATE TABLE public.orders (
shipdate date NULL,
prodcd varchar(10) NULL,
orderqty int4 NULL --주문수량
);
insert into prod_master
values('8809123', 20); --한박스에 20개씩
insert into orders
values('2019-05-20', '8809123', 50); --총주문 수량 50개
이와 같이 주문이 들어 왔을 경우
| As-Is | ||
| shipdate | prodcd | orderqty |
| 2019-05-20 | 8809123 | 50 |
아래와 같이 row를 박스 입수 만큼 row를 분리 하는 쿼리가 가능한지...
| To-Be | ||
| shipdate | prodcd | orderqty |
| 2019-05-20 | 8809123 | 20 |
| 2019-05-20 | 8809123 | 20 |
| 2019-05-20 | 8809123 | 10 |