사진이 프로시저결과인데요 이프로시저에 컬럼을 하나 추가해서 집계를 내고싶습니다.
품목(materialname)별로 집계를 내고싶은데 집계 내는 방식이 조금 다르더라구요
냉동고구마를 보시면 수량(qty)가 1.00이 2개 4.00이 2개, 2.00과 3.00은 1개씩 있습니다.
이러면 1.00 이 2개니까 1-2로 표현을 하고 4.00은 4-2 2.00과 3.00은 각각 2-1 , 3-1 로 표현하고싶고 중복되는 결과는 빈값으로 채우고싶습니다.
할수있는방법이 있을까요 ??
원하는 결과를 표로 보여주세요.
| storeCode | carNo | storeName | remark | materialCode | materialName | dimension | unitName | qty | total | |
| 1 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 1.00 | 1-2 | |
| 2 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 3.00 | 3-1 | |
| 3 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 4.00 | 4-2 | |
| 4 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 2.00 | 2-1 | |
| 5 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 1.00 | ||
| 6 | 2026 | 5 | [공주]공암어린이집 | 1000840 | 냉동고구마(농우)중국산/맛탕용 | 1KG(55개-60개)유탕 | ea | 4.00 | ||
이런식으로 품목별로 집계를 하고 같은집계가 나오면 안보이게 하고싶습니다
WITH t (storeCode, carNo, storeName, remark, materialCode, materialName, dimension, unitName, qty) AS
(
SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 1.00
UNION ALL SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 3.00
UNION ALL SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 4.00
UNION ALL SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 2.00
UNION ALL SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 1.00
UNION ALL SELECT '2026', 5, '[공주]공암어린이집', '', '1000840 ', '냉동고구마(농우)중국산/맛탕용', '1KG(55개-60개)유탕', 'ea', 4.00
)
SELECT storeCode
, carNo
, storeName
, remark
, materialCode
, materialName
, dimension
, unitName
, qty
, CASE WHEN ROW_NUMBER() OVER(PARTITION BY materialCode, qty ORDER BY (SELECT 1)) = 1
THEN CONCAT(CAST(qty AS INT), '-', COUNT(*) OVER(PARTITION BY materialCode, qty))
END total
FROM t
;
해결했습니다 감사합니다