계획, 결과 1:N SELECT 하는 방법 문의합니다. 0 1 1,500

by 능능능 [SQL Query] SELECT 1대N [2019.10.30 16:24:58]


DB왕초보 질문좀 드릴게요

생산계획을 잡고 결과를 입력할건데요

TB_생산계획, TB_생산결과  두개의 테이블을 생성하고

TB_생산계획 테이블은 (키, 품명, 계획수량)  TB_생산결과 테이블은(키, 생산계획키, 결과수량)

1개의 계획이 입력되었을때 결과가 N번 입력이 가능한 상태이고 

이러한 구조로 테이블이 2개 있는 상태에서  품명, 계획수량, 결과수량 이렇게 출력하고 싶습니다.

(결과수량에 해당 계획키로 N번입력된 결과수량의 합을  품명, 계획수량, 결과수량(N번 합한값) 형태로 하나의 로우로 나타내고 싶습니다)

쿼리 왕초보라 영감이 안와서요 답변좀 부탁드릴게요.

 

 

by 모래가흙흙 [2019.10.30 17:08:28]
WITH TB_PLAN AS (

SELECT '201910300001' AS ORDER_NO,  'ITEM001' AS ITEM_ID, 5000 AS PLAN_QTY FROM DUAL UNION ALL
SELECT '201910300002' AS ORDER_NO,  'ITEM077' AS ITEM_ID, 3000 AS PLAN_QTY FROM DUAL
),
TB_RESULT AS (
SELECT '201910300001' AS ORDER_NO, 300 AS GOOD_QTY, '20191030173022' AS  TRAN_TIME FROM DUAL UNION ALL
SELECT '201910300001' AS ORDER_NO, 300 AS GOOD_QTY, '20191030183022' AS  TRAN_TIME FROM DUAL UNION ALL
SELECT '201910300001' AS ORDER_NO, 300 AS GOOD_QTY, '20191030193022' AS  TRAN_TIME FROM DUAL 
)

SELECT A.ORDER_NO,
       A.ITEM_ID,
       NVL(SUM(B.GOOD_QTY),0) AS GOOD_QTY 
  FROM TB_PLAN A LEFT OUTER JOIN TB_RESULT B
                              ON A.ORDER_NO = B.ORDER_NO
GROUP BY A.ORDER_NO, A.ITEM_ID

요렇게요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입