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 3948 게시물 읽기
No. 3948
쿼리 질문입니다.
작성자
작성일
2007-12-28 01:28
조회수
3,394


테이블 구조가 다음과 같습니다.


일별 통계테이블

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

일자(20071220)

부서코드

부서명

신규직원수

퇴직직원수

휴직직원수

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

CREATE TABLE XSTAT (

 XDAY VARCHAR(8),

 BCODE varchar(3),

 BNAME varchar(20),

 NCOUNT int,

 OCOUNT int,

 PCOUNT int

)




데이타는 다음과 같습니다.

insert into XSTAT VALUES( '20071220', '001','A부서',5,2,1)

insert into XSTAT VALUES( '20071220', '002','B부서',3,0,0)

insert into XSTAT VALUES( '20071220', '003','C부서',2,1,0)

 

일자 20071220 20071220 20071220
부서코드 001 002 003
부서명  A부서 B부서 C부서
신규직원수 5 3 2
퇴직직원수 2 0 1
휴직직원수 1 0 0



쿼리를 하면 결과가 다음과 같이 나옵니다.


20071220 001 A부서 5     2    1  
20071220 002 B부서 3 0 0
20071220 003 C부서 2 1 0


저는 결과를 부서컬럼으로 얻고 싶은데 쿼리를 어떻게 해야 할지 모르겠습니다.


A부서 B부서 C부서
001 002 003
5 3 1
2 0 0
1 0 0




  

 

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

 

CREATE TABLE XSTAT (

 XDAY VARCHAR(8),

 BCODE varchar(3),

 BNAME varchar(20),

 NCOUNT int,

 OCOUNT int,

 PCOUNT int

)

 

insert into XSTAT VALUES( '20071220', '001','A부서',5,2,1)

insert into XSTAT VALUES( '20071220', '002','B부서',3,0,0)

insert into XSTAT VALUES( '20071220', '003','C부서',2,1,0)

 

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

SELECT MAX(CASE BCODE WHEN '001' THEN S END),

       MAX(CASE BCODE WHEN '002' THEN S END),

       MAX(CASE BCODE WHEN '003' THEN S END)

  FROM (SELECT A.BCODE,B.COLID,

               CASE B.NAME WHEN 'XDAY' THEN CONVERT(VARCHAR,A.XDAY)

                           WHEN 'BCODE' THEN CONVERT(VARCHAR,A.BCODE)

                           WHEN 'BNAME' THEN CONVERT(VARCHAR,A.BNAME)

                           WHEN 'NCOUNT' THEN CONVERT(VARCHAR,A.NCOUNT)

                           WHEN 'OCOUNT' THEN CONVERT(VARCHAR,A.OCOUNT)

                           WHEN 'PCOUNT' THEN CONVERT(VARCHAR,A.PCOUNT) END S                           

         FROM XSTAT A CROSS JOIN SYSCOLUMNS B

        WHERE B.ID = OBJECT_ID('XSTAT')) T

 GROUP BY COLID

 

/*

                                                             

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

20071220                       20071220                       20071220

001                            002                            003

A부서                           B부서                           C부서

5                              3                              2

2                              0                              1

1                              0                              0

경고: 집계 또는 다른 SET 연산에 의해 Null 값이 제거 되었습니다.

 

(6 적용됨)

*/

최석준(beatchoi)님이 2007-12-28 10:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3951MS-SQL2000 DB사용량 증설 방법
권태영
2008-01-02
3053
3950char(7) 의 고유한 키값을 얻고 싶습니다. [1]
청년재벌
2008-01-01
2857
3949text타입의 필드에 많은량의 text를 넣으면 수정이 안되네요 [1]
김현민
2007-12-31
3162
3948쿼리 질문입니다. [1]
2007-12-28
3394
3947MSSQL2005 스탠다드랑 엔터프라이즈 차이점 아시는분?... [2]
현석이
2007-12-27
3603
3946oracle db를 ms-sql로 가져오는 방법
김동민
2007-12-27
3297
3945외부에서 db서버 붙기
박판규
2007-12-27
3070
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다