database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6901 게시물 읽기
No. 6901
소계 합계 질문입니다.
작성자
이대운
작성일
2015-04-19 23:23ⓒ
2015-04-19 23:26ⓜ
조회수
6,335

 소계 합계 쿼리하는 질문입니다.

 

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
합계  

 

아래와 같이 원하는 결과 값을 쿼리로 구현하고 싶습니다.

고수님들의 답변 주세요

 

 

 

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

sample data 좀..

우욱님이 2015-04-20 10:04에 작성한 댓글입니다. Edit

SELECT CASE WHEN GROUPING(aaa) = 1 THEN '합계'
            WHEN GROUPING(bbb) = 1 THEN '소계'
            ELSE CAST(ROW_NUMBER() OVER(PARTITION BY aaa
                      ORDER BY bbb, ccc, ddd, eee)
                      AS VARCHAR)
             END AS no
     , aaa, bbb, ccc, ddd, eee
     , SUM(fff) fff
     , SUM(ggg) ggg
  FROM ttt
 GROUP BY aaa, bbb, ccc, ddd, eee
  WITH ROLLUP
HAVING GROUPING(eee) = 0
    OR GROUPING(bbb) = 1
;

마농(manon94)님이 2015-04-20 11:30에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6904쿼리 문의
김영희
2015-04-29
5183
6903SELECT 특정 테이블 쿼리 시 전송 수준 오류 문의 [1]
쿠쿠쿠
2015-04-28
6690
6902날짜 조건 BETWEEN CASE WHEN 질문입니다 [1]
야마히
2015-04-24
5345
6901소계 합계 질문입니다. [2]
이대운
2015-04-19
6335
6900loop in SQL [2]
ohyouknow
2015-04-14
5046
6899ODBC로 비주얼베이직 연동 시키는 법 질문입니다~ㅠ [1]
어어렁
2015-03-31
5664
6898dblink 연결 후 insert 문제 [2]
박창수
2015-03-27
12860
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다