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 7019 게시물 읽기
No. 7019
ms-sql summary 출력 도움 부탁드립니다.
작성자
개발자
작성일
2016-12-22 23:17ⓒ
2016-12-22 23:19ⓜ
조회수
3,007

아래의 데이터들을 다음과 같이 summary 결과로 출력 하려고 합니다.

어떻게 해야 할지, 쿼리로 할지 프로시져로 할지 도움의 말씀 부탁드립니다.

가능하면 쿼리로 했으면 합니다.

감사합니다.

 

아래는 데이터

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

SELECT '내부' AS INOUT

,'부품1' AS GUBUN1

,'지점1' AS GUBUN2

,11.0 AS COST

,0.1 AS PER

UNION ALL

SELECT '내부' AS INOUT

,'부품1' AS GUBUN1

,'지점2' AS GUBUN2

,22.0 AS COST

,0.2 AS PER

UNION ALL

SELECT '외부' AS INOUT

,'부품1' AS GUBUN1

,'지점2' AS GUBUN2

,3.0 AS COST

,0.3 AS PER

UNION ALL

SELECT '내부' AS INOUT

,'부품2' AS GUBUN1

,'지점1' AS GUBUN2

,4.0 AS COST

,0.4 AS PER

UNION ALL

SELECT '내부' AS INOUT

,'부품2' AS GUBUN1

,'지점2' AS GUBUN2

,5.0 AS COST

,0.5 AS PER

UNION ALL

SELECT '외부' AS INOUT

,'부품2' AS GUBUN1

,'지점2' AS GUBUN2

,6.0 AS COST

,0.6 AS PER

UNION ALL

SELECT '내부' AS INOUT

,'부품3' AS GUBUN1

,'지점1' AS GUBUN2

,7.0 AS COST

,0.7 AS PER

UNION ALL

SELECT '외부' AS INOUT

,'부품3' AS GUBUN1

,'지점1' AS GUBUN2

,8.0 AS COST

,0.8 AS PER

UNION ALL

SELECT '외부' AS INOUT

,'부품3' AS GUBUN1

,'지점1' AS GUBUN2

,9.0 AS COST

,0.9 AS PER

 

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

 

 

아래는 출력 화면

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

색깔 | 합계 | 값 |

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

black | 부품1 외부+내부 Total Cost | |

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

black | 부품1 외부+내부 Total Per | |

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

white | 부품1 외부+내부 지점1 Cost | |

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

white | 부품1 외부+내부 지점1 Per | |

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

white | 부품1 외부+내부 지점2 Cost | |

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

white | 부품1 외부+내부 지점2 Per | |

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

green | 부품1 내부 Total Cost | |

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

green | 부품1 내부 Total Per | |

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

white | 부품1 내부 지점1 Cost | |

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

white | 부품1 내부 지점1 Per | |

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

white | 부품1 내부 지점2 Cost | |

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

white | 부품1 내부 지점2 Per | |

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

red | 부품1 외부 Total Cost | |

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

red | 부품1 외부 Total Per | |

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

white | 부품1 외부 지점1 Cost | |

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

white | 부품1 외부 지점1 Per | |

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

white | 부품1 외부 지점2 Cost | |

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

white | 부품1 외부 지점2 Per | |

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

부품2 위와 동일

부품3 위와동일

 

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

WITH t AS
(
SELECT '내부' inout, '부품1' gubun1, '지점1' gubun2, 11.0 cost, 0.1 per
UNION ALL SELECT '내부', '부품1', '지점2', 22.0, 0.2
UNION ALL SELECT '외부', '부품1', '지점2',  3.0, 0.3
UNION ALL SELECT '내부', '부품2', '지점1',  4.0, 0.4
UNION ALL SELECT '내부', '부품2', '지점2',  5.0, 0.5
UNION ALL SELECT '외부', '부품2', '지점2',  6.0, 0.6
UNION ALL SELECT '내부', '부품3', '지점1',  7.0, 0.7
UNION ALL SELECT '외부', '부품3', '지점1',  8.0, 0.8
UNION ALL SELECT '외부', '부품3', '지점1',  9.0, 0.9
)
SELECT CASE GROUPING_ID(inout, gubun2)
       WHEN 3 THEN 'black'
       WHEN 2 THEN 'white'
       WHEN 1 THEN CASE inout WHEN '내부' THEN 'green' ELSE 'red' END
       WHEN 0 THEN 'white'
        END color
     , gubun1
     , ISNULL(inout, '내부+외부') inout
     , ISNULL(gubun2, 'Total') gubun2
     , gubun3
     , SUM(v) v
  FROM (SELECT CAST(inout  AS VARCHAR(20)) inout
             , gubun1
             , CAST(gubun2 AS VARCHAR(20)) gubun2
             , CAST(cost   AS NUMERIC(9,1)) Cost
             , CAST(per    AS NUMERIC(9,1)) Per
          FROM t
        ) a
 UNPIVOT (v FOR gubun3 IN (cost, per)) a
 GROUP BY gubun1, gubun3, CUBE(inout, gubun2)
 ORDER BY a.gubun1, a.inout, a.gubun2, a.gubun3
;

마농(manon94)님이 2016-12-23 10:04에 작성한 댓글입니다.
이 댓글은 2016-12-23 10:20에 마지막으로 수정되었습니다.

도움에 정말 감사합니다.

연말 즐겁게 잘 보내세요~^^

 

개발자님이 2016-12-23 10:24에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7022원격데스크탑 포트만 접속 가능할 경우 mssql 서버 접속할 수 있는 방법? [2]
이도윤
2017-01-03
2995
7021컬럼중 하나 이상의 값이 틀릴때만 insert 하는 묘수를 찾습니다.
김기열
2016-12-31
2817
7020DB어떻게 만들어야 할까요 ? [1]
Ham
2016-12-26
2829
7019ms-sql summary 출력 도움 부탁드립니다. [2]
개발자
2016-12-22
3007
7018distinct 혹은 group by 문의 [3]
이정훈
2016-12-13
2903
7017물품관리에서 입고 출고된것 모두 제거하고 싶습니다. [2]
빨간운동화
2016-12-13
3078
7015SQL Server Managerment Studio Express 공급자 속성 비활성화 [2]
도우덕
2016-11-23
3247
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다