1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | -- 연결고리가 접수번호가 아닌 상품이 되어야 하지 않을까요? -- 1. 서브쿼리(테이블 2번 사용) SELECT 상품 , SUM (원재료가격1) 원재료가격1 , SUM (원재료가격2) 원재료가격2 , ... FROM 상품들 WHERE 1=1 AND 날짜 BETWEEN 당월시작 AND 당월종료 AND 상품 IN ( SELECT 상품 FROM 상품들 WHERE 날짜 BETWEEN 전월시작 AND 전월종료) GROUP BY 상품 ; SELECT 상품 , SUM (원재료가격1) 원재료가격1 , SUM (원재료가격2) 원재료가격2 , ... FROM 상품들 m WHERE 1=1 AND 날짜 BETWEEN 당월시작 AND 당월종료 AND EXISTS ( SELECT 1 FROM 상품들 s WHERE s.날짜 BETWEEN 전월시작 AND 전월종료 AND s.상품 = m.상품 ) GROUP BY 상품 ; -- 2. Case 문 사용(테이블 1번 사용) SELECT 상품 , SUM ( CASE WHEN 날짜 BETWEEN 당월시작 AND 당월종료 THEN 원재료가격1 END ) 원재료가격1 , SUM ( CASE WHEN 날짜 BETWEEN 당월시작 AND 당월종료 THEN 원재료가격2 END ) 원재료가격2 , ... FROM 상품들 WHERE 1=1 AND 날짜 BETWEEN 전월시작 AND 당월종료 GROUP BY 상품 HAVING COUNT ( CASE WHEN 날짜 BETWEEN 전월시작 AND 전월종료 THEN 1 END ) > 0 ; |