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 7093 게시물 읽기
No. 7093
행별 총합, sub sum, 열끝에는 sum을.. 출력 도움 부탁드립니다~
작성자
개발자
작성일
2017-09-18 15:56ⓒ
2017-09-18 16:19ⓜ
조회수
2,669

행으로는 총합과 팀별 sub sum 을, 열 끝에는 sum 값을 출력하려고 합니다.

 

정말 어렵네요..ㅠㅠ

 

도움 부탁드립니다~

 

 

데이터는 아래식으로 들어있습니다.

 

 

SELECT '1팀' 팀, '1파트' 파트, '구분a' 구분, 10 시스템수량, 5 실제수량

UNION ALL SELECT '1팀', '2파트', '구분a', 20, 20

UNION ALL SELECT '2팀', '1파트', '구분b', 10, null

UNION ALL SELECT '2팀', '3파트', '구분c', 10, 8

.

.

.

.

 

 

===========================================

 

 

아래는 결과 화면입니다.

 

 

 

| 팀 | 파트 |구분a | 구분b |구분c | 합계

| | |구분a시스템수량|구분a실제수량|구분a차이수량 |구분b 시스템수량|구분b 실제수량|구분b 차이수량|구분c시스템수량|구분c실제수량|구분c차이수량 |시스템수량|실제수량|차이수량 |일치율

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

총합 |30 |25 |5 |10 | |10 |10 |8 |2 |50 |33 |17 |(실제수량/시스템수량)*100

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1팀 | 1파트 |10 |5 |5 | | | | | | |10 |5 |5 |(실제수량/시스템수량)*100

1팀 | 2파트 |20 |20 |0 | | | | | | |20 |20 |0 |(실제수량/시스템수량)*100

1팀소계 |30 |25 |5 | | | | | | |30 |25 |5 |(실제수량/시스템수량)*100

2팀 | 1파트 | | | |10 | |10 | | | |10 | |10 |(실제수량/시스템수량)*100

2팀 | 3파트 | | | | | | |10 |8 |2 |10 |8 |2 |(실제수량/시스템수량)*100

2팀소계 | | | |10 | |10 |10 |8 |2 |20 |8 |12 |(실제수량/시스템수량)*100

 

 

===================================================

 

아래는 위와 동일한 출력 결과인데 위에는 공백이 표현되지 않아 보기가 어려울듯 하여 공백을 x 로 변환하였습니다.

x를 공백으로 변환 후 보면 좋을듯 합니다.

 

 

 

|xxx팀xxxxxx|xxx파트xx|구분a xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|구분b xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|구분c xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|합계 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

|xxxxxxxxxxx|xxxxxxxxx|구분a시스템수량|구분a실제수량|구분a차이수량x|구분bx시스템수량|구분bx실제수량|구분bx차이수량|구분c시스템수량|구분c실제수량|구분c차이수량x|시스템수량|실제수량|차이수량xx|일치율xxxxxxxxxxxxxxxxxxxxx

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

총합xxxxxxxxxxxxxxxxxx|30xxxxxxxxxxxxx|25xxxxxxxxxxx|5xxxxxxxxxxxxx|10xxxxxxxxxxxxxx|xxxxxxxxxxxxx|10xxxxxxxxxxxxx|10xxxxxxxxxxxxx|8xxxxxxxxxxxx|2xxxxxxxxxxxxx|50xxxxxxxx|33xxxxxxx|17xxxxxxx|(실제수량/시스템수량)*100

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1팀xxxxxxxxx|x1파트xxx|10xxxxxxxxxxxxx|5xxxxxxxxxxxx|5xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|10xxxxxxxx|5xxxxxxxx|5xxxxxxxx|(실제수량/시스템수량)*100

1팀xxxxxxxxx|x2파트xxx|20xxxxxxxxxxxxx|20xxxxxxxxxxx|0xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|20xxxxxxxx|20xxxxxxx|0xxxxxxxx|(실제수량/시스템수량)*100

1팀소계xxxxxxxxxxxxxxx|30xxxxxxxxxxxxx|25xxxxxxxxxxx|5xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|30xxxxxxxx|25xxxxxxx|5xxxxxxxx|(실제수량/시스템수량)*100

2팀xxxxxxxxx|x1파트xxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|10xxxxxxxxxxxxxx|xxxxxxxxxxxxx|10xxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|10xxxxxxxx|xxxxxxxxx|10xxxxxxx|(실제수량/시스템수량)*100

2팀xxxxxxxxx|x3파트xxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxxx|10xxxxxxxxxxxxx|8xxxxxxxxxxxx|2xxxxxxxxxxxxx|10xxxxxxxx|8xxxxxxxx|2xxxxxxxx|(실제수량/시스템수량)*100

2팀소계xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxxx|10xxxxxxxxxxxxxx|xxxxxxxxxxxxx|10xxxxxxxxxxxxx|10xxxxxxxxxxxxx|8xxxxxxxxxxxx|2xxxxxxxxxxxxx|20xxxxxxxx|8xxxxxxxx|12xxxxxxx|(실제수량/시스템수량)*100

 

 

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

WITH t AS
(
SELECT '1팀' 팀, '1파트' 파트, '구분a' 구분, 10 시스템수량, 5 실제수량
UNION ALL SELECT '1팀', '2파트', '구분a', 20, 20
UNION ALL SELECT '2팀', '1파트', '구분b', 10, null
UNION ALL SELECT '2팀', '3파트', '구분c', 10, 8
)
SELECT CASE GROUPING_ID(팀, 파트) WHEN 3 THEN '총계' ELSE 팀   END 팀
     , CASE GROUPING_ID(팀, 파트) WHEN 1 THEN '소계' ELSE 파트 END 파트
     , SUM(CASE 구분 WHEN '구분a' THEN 시스템수량 END) 시스템수량_구분a
     , SUM(CASE 구분 WHEN '구분a' THEN   실제수량 END)   실제수량_구분a
     , SUM(CASE 구분 WHEN '구분a' THEN   차이수량 END)   차이수량_구분a
     , SUM(CASE 구분 WHEN '구분b' THEN 시스템수량 END) 시스템수량_구분b
     , SUM(CASE 구분 WHEN '구분b' THEN   실제수량 END)   실제수량_구분b
     , SUM(CASE 구분 WHEN '구분b' THEN   차이수량 END)   차이수량_구분b
     , SUM(CASE 구분 WHEN '구분c' THEN 시스템수량 END) 시스템수량_구분c
     , SUM(CASE 구분 WHEN '구분c' THEN   실제수량 END)   실제수량_구분c
     , SUM(CASE 구분 WHEN '구분c' THEN   차이수량 END)   차이수량_구분c
     , SUM(시스템수량) 시스템수량_합계
     , SUM(  실제수량)   실제수량_합계
     , SUM(  차이수량)   차이수량_합계
     , ROUND(100. * ISNULL(SUM(실제수량), 0) / SUM(시스템수량), 2) AS 일치율
  FROM (SELECT 팀
             , 파트
             , 구분
             , 시스템수량
             , 실제수량
             , 시스템수량 - ISNULL(실제수량, 0) 차이수량
          FROM t
        ) a
 GROUP BY ROLLUP(팀, 파트)
 ORDER BY GROUPING(a.팀  ) DESC, 팀
        , GROUPING(a.파트)  ASC, 파트
;

마농(manon94)님이 2017-09-18 17:34에 작성한 댓글입니다.
이 댓글은 2017-09-18 17:35에 마지막으로 수정되었습니다.

우와..감사합니다ㅠㅠ

쿼리는 한번 실행해 보고 분석은 아직 안했지만..댓글 감사합니다~*

좋은 하루 보내세요~

개발자님이 2017-09-18 17:59에 작성한 댓글입니다.
이 댓글은 2017-09-18 17:59에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7096다중키 사용시 다른 컬럼의 인덱스를 어떻게 생성해야.. [3]
김진호
2017-09-27
2651
7095mssql 식사시간 구하기 [5]
김알지
2017-09-27
3145
7094쿼리 부탁드려요 [2]
이수돈
2017-09-25
2326
7093행별 총합, sub sum, 열끝에는 sum을.. 출력 도움 부탁드립니다~ [2]
개발자
2017-09-18
2669
7092페이징 쿼리 입니다. 찾다 찾다 그냥 만들었습니다 [2]
박성재
2017-09-08
2606
7091MSSQL2008 DB를 Paradox파일로 백업하는 쿼리가 있나요?
김우성
2017-09-03
2418
7090오라클의 sys_connect_by_path 함수 변환 [1]
초보
2017-08-30
3166
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.056초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다