-- 답에만 맞췄어요.. -- K값이 왜 저래야하는지 잘모르겟네요.. WITH T AS ( SELECT 'SELF' TYPE , 'D' CODE , '' SUB_CODE , 'EXOTIC' COLOR , 1 RN , 249 QTY UNION ALL SELECT 'SELF' TYPE , 'D' CODE , '' SUB_CODE , 'GREEN' COLOR , 2 RN , 292 QTY UNION ALL SELECT 'SELF' TYPE , 'D' CODE , '' SUB_CODE , 'PINK' COLOR , 3 RN , 335 QTY UNION ALL SELECT 'SELF' TYPE , 'D' CODE , '' SUB_CODE , 'PLUM' COLOR , 4 RN , 224 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '2' SUB_CODE , 'EXOTIC' COLOR , 1 RN , 239 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '2' SUB_CODE , 'GREEN' COLOR , 2 RN , 280 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '2' SUB_CODE , 'PINK' COLOR , 3 RN , 322 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '2' SUB_CODE , 'PLUM' COLOR , 4 RN , 215 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '3' SUB_CODE , 'EXOTIC' COLOR , 1 RN , 0 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '3' SUB_CODE , 'GREEN' COLOR , 2 RN , 0 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '3' SUB_CODE , 'PINK' COLOR , 3 RN , 0 QTY UNION ALL SELECT 'SELF' TYPE , 'F' CODE , '3' SUB_CODE , 'PLUM' COLOR , 4 RN , 0 QTY UNION ALL SELECT 'SELF' TYPE , 'K' CODE , '' SUB_CODE , '' COLOR , 1 RN , 1170 QTY UNION ALL SELECT 'TRIM' TYPE , 'D' CODE , '' SUB_CODE , 'BLE' COLOR , 1 RN , 242 QTY UNION ALL SELECT 'TRIM' TYPE , 'F' CODE , '2' SUB_CODE , 'BLE' COLOR , 1 RN , 240 QTY UNION ALL SELECT 'TRIM' TYPE , 'K' CODE , '' SUB_CODE , '' COLOR , 1 RN , 257 QTY ) SELECT TYPE , COLOR , RN , (SELECT MAX(QTY) FROM T WHERE TYPE = a.TYPE ) K, SUM(CASE WHEN CODE = 'D' THEN QTY END) D, SUM(CASE WHEN CODE = 'F' AND SUB_CODE = '' THEN QTY END) F1, SUM(CASE WHEN CODE = 'F' AND SUB_CODE = '2' THEN QTY END) F2, SUM(CASE WHEN CODE = 'F' AND SUB_CODE = '3' THEN QTY END) F3 FROM T a WHERE COLOR != '' GROUP BY TYPE ,COLOR , RN ORDER BY TYPE , COLOR
WITH TAB AS
(
SELECT 'SELF' TYPE1, 'DYE' CODE, 0 SUBCODE, 'EXOTIC ROYAL NEON' COLOR, 249 QTY UNION ALL
SELECT 'SELF' TYPE1, 'DYE' CODE, 0 SUBCODE, 'GREEN NEON' COLOR, 292 QTY UNION ALL
SELECT 'SELF' TYPE1, 'DYE' CODE, 0 SUBCODE, 'KNOCKOUT PINK' COLOR, 335 QTY UNION ALL
SELECT 'SELF' TYPE1, 'DYE' CODE, 0 SUBCODE, 'PLUM BURST' COLOR, 224 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 2 SUBCODE, 'EXOTIC ROYAL NEON' COLOR, 239 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 2 SUBCODE, 'GREEN NEON' COLOR, 280 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 2 SUBCODE, 'KNOCKOUT PINK' COLOR, 322 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 2 SUBCODE, 'PLUM BURST' COLOR, 215 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 3 SUBCODE, 'EXOTIC ROYAL NEON' COLOR, 0 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 3 SUBCODE, 'GREEN NEON' COLOR, 0 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 3 SUBCODE, 'KNOCKOUT PINK' COLOR, 0 QTY UNION ALL
SELECT 'SELF' TYPE1, 'FABSENDOUT' CODE, 3 SUBCODE, 'PLUM BURST' COLOR, 0 QTY UNION ALL
SELECT 'SELF' TYPE1, 'KNITTING' CODE, 0 SUBCODE, '' COLOR, 1170 QTY UNION ALL
SELECT 'CONTRAST' TYPE1, 'DYE' CODE, 0 SUBCODE, 'BLEACH' COLOR, 242 QTY UNION ALL
SELECT 'CONTRAST' TYPE1, 'FABSENDOUT' CODE, 2 SUBCODE, 'BLEACH' COLOR, 240 QTY UNION ALL
SELECT 'CONTRAST' TYPE1, 'KNITTING' CODE, 0 SUBCODE, '' COLOR, 257 QTY
)
--select CODE+SUBCODE from TAB
SELECT s.*
FROM (
SELECT TYPE1
, COLOR
, ROW_NUMBER() OVER(PARTITION BY TYPE1 ORDER BY COLOR) RN
, CASE WHEN KNITTING IS NULL THEN SUM(KNITTING) OVER(PARTITION BY TYPE1) ELSE KNITTING END KNITTING
, DYE
, FABSENDOUT_1
, FABSENDOUT_2
, FABSENDOUT_3
FROM (
SELECT TYPE1
, COLOR
, SUM(CASE CODE WHEN 'KNITTING' THEN QTY END) AS KNITTING
, SUM(CASE CODE WHEN 'DYE' THEN QTY END) AS DYE
, SUM(CASE CODE+cast(SUBCODE as varchar) WHEN 'FABSENDOUT1' THEN QTY END) AS FABSENDOUT_1
, SUM(CASE CODE+cast(SUBCODE as varchar) WHEN 'FABSENDOUT2' THEN QTY END) AS FABSENDOUT_2
, SUM(CASE CODE+cast(SUBCODE as varchar) WHEN 'FABSENDOUT3' THEN QTY END) AS FABSENDOUT_3
FROM TAB
GROUP BY TYPE1
, COLOR
) a
) s
WHERE COLOR <> ''
저도 비슷하게 하긴 했어요 ㅋㅋ
감사합니다