소계 합계 쿼리하는 질문입니다.
SELECT
CASE WHEN
AAA NULL
AND BBB IS NULL
AND CCC IS NULL
AND DDD IS NULL
AND EEE IS NULL
THEN '합계'
WHEN
BBB IS NULL
AND CCC IS NULL
AND DDD IS NULL
AND EEE IS NULL
THEN '소계'
ELSE
'1'
--CAST(ROW_NUMBER() OVER(PARTITION BY AAA ORDER BY
--RAND()) AS VARCHAR) /* 여기서 모르겠습니다 */
END AS NO,
AAA, BBB,CCC,DDD,EEE
SUM(FFF) AS FFF,
SUM(GGG) AS GGG
FROM TTT
GROUP BY AAA,BBB,CCC,DDD,EEE WITH ROLLUP
HAVING( ( GROUPING(BBB) = 0
AND GROUPING(CCC) = 0
AND GROUPING(DDD) = 0
AND GROUPING(EEE) = 0
)
OR
(GROUPING(BBB) = 1
AND GROUPING(CCC) = 1
AND GROUPING(DDD) = 1
AND GROUPING(EEE) = 1
)
소계와 합계는 구했는데 소계와 합계 에 숫자를 ORACLE처럼 ROWNUM우로 1씩 증가시키려고 하는데 도저히 모르겠습니다.
현재 결과 값.
NO AAA
1 |
80 |
1 |
80 |
1 |
80 |
소계 |
80 |
1 |
11 |
소계 |
11 |
1 |
44 |
1 |
44 |
소계 |
44 |
합계 |
|
원하는 결과 값.
NO AAA
1 |
80 |
2 |
80 |
3 |
80 |
소계 |
80 |
1 |
11 |
소계 |
11 |
1 |
44 |
2 |
44 |
소계 |
44 |
합계 |
|
아래와 같이 원하는 결과 값을 쿼리로 구현하고 싶습니다.
고수님들의 답변 주세요
|