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 6469 게시물 읽기
No. 6469
월별 장비상태에 따른 통계합계
작성자
길정운(jusky7)
작성일
2012-11-24 16:44ⓒ
2012-11-26 10:55ⓜ
조회수
7,970

장비상태별로 수량합계 구하는 쿼리인데요.

장비상태 :  TMS_EQUIPMENT.EQUIPMENTSTATUS = 0(신규), 1(수리).......

LINE(공정)별로 신규,수리,교체,폐기,가동수,고장수를 두 장비로 분류하여 합계를 구합니다.

궁금한것은 등록일자를 기준으로 해당 년도를 지정하면 월별로 표시하고 싶습니다.

등록일자 Table :  TMS_EQUIPMENT.InstalledDate  입니다.(2012-10-04  오전  12:00:00)

SELECT LINE, SUM(L_NEW) AS L_신규, SUM(L_REPARE) AS L_수리, SUM(L_REPLACE) AS L_교체,

             SUM(L_MOVE) AS L_이동, SUM(L_DISUSE) AS L_폐기,

            SUM(L_NEW + L_REPLACE + L_MOVE + L_DISUSE + L_REPARE)  AS L_전체,

             SUM(L_NEW + L_REPLACE + L_MOVE) AS L_가동수, SUM(L_DISUSE + L_REPARE) AS L_고장수, 

             SUM(N_NEW) AS N_신규, SUM(N_REPARE) AS N_수리,  SUM(N_REPLACE) AS N_교체,

             SUM(N_MOVE)  AS N_이동,   SUM(N_DISUSE) AS N_폐기, 

             SUM(N_NEW + N_REPLACE + N_MOVE + N_DISUSE + N_REPARE)  AS N_전체, 

          SUM(N_NEW + N_REPLACE + N_MOVE) AS N_가동수, SUM(N_DISUSE + N_REPARE) AS N_고장수

FROM     (SELECT  TOP (100) PERCENT TMS_LINE.LineName AS LINE, TMS_LINE.LineOrder AS 공정순서, 
                  SUM(CASE WHEN (tms_equipment.usage = 0 AND TMS_EQUIPMENT.EQUIPMENTSTATUS = 0) 
                  THEN 1 ELSE 0 END) AS L_NEW, SUM(CASE WHEN (tms_equipment.usage = 0 AND 
                  TMS_EQUIPMENT.EQUIPMENTSTATUS = 1) THEN 1 ELSE 0 END) AS L_DISUSE, 
                  SUM(CASE WHEN (tms_equipment.usage = 0 AND TMS_EQUIPMENT.EQUIPMENTSTATUS = 2) 
                   THEN 1 ELSE 0 END) AS L_REPARE, SUM(CASE WHEN (tms_equipment.usage = 0 AND 
                   TMS_EQUIPMENT.EQUIPMENTSTATUS = 3) THEN 1 ELSE 0 END) AS L_REPLACE, 
                   SUM(CASE WHEN (tms_equipment.usage = 0 AND TMS_EQUIPMENT.EQUIPMENTSTATUS = 4) 
                   THEN 1 ELSE 0 END) AS L_MOVE, SUM(CASE WHEN (tms_equipment.usage = 1 AND 
                   TMS_EQUIPMENT.EQUIPMENTSTATUS = 0) THEN 1 ELSE 0 END) AS N_NEW, 
                   SUM(CASE WHEN (tms_equipment.usage = 1 AND TMS_EQUIPMENT.EQUIPMENTSTATUS = 1) 
                   THEN 1 ELSE 0 END) AS N_DISUSE, SUM(CASE WHEN (tms_equipment.usage = 1 AND 
                   TMS_EQUIPMENT.EQUIPMENTSTATUS = 2) THEN 1 ELSE 0 END) AS N_REPARE, 
                   SUM(CASE WHEN (tms_equipment.usage = 1 AND TMS_EQUIPMENT.EQUIPMENTSTATUS = 3) 
                   THEN 1 ELSE 0 END) AS N_REPLACE, SUM(CASE WHEN (tms_equipment.usage = 1 AND 
                   TMS_EQUIPMENT.EQUIPMENTSTATUS = 4) THEN 1 ELSE 0 END) AS N_MOVE
              FROM     TMS_LINE LEFT OUTER JOIN
                              TMS_EQUIPMENT ON TMS_EQUIPMENT.LineName = TMS_LINE.LineName
              GROUP BY TMS_LINE.LineName, TMS_LINE.LineOrder, TMS_EQUIPMENT.Usage) AS derivedtbl_1
GROUP BY LINE, 공정순서

현재 결과

LINE   L_신규  L_수리  L_교체 L_이동  L_폐기 L_전체 ......................................N_고장수

 CC         0               2          0               2        0          0           ----------  1년합계 통계

 AA       2                3          0               0        1          0

변경후

LINE  월    L_신규  L_수리  L_교체 L_이동  L_폐기 L_전체 ......................................N_고장수

 CC      1          0              1            0               1            0          0

 CC      2         0              1             0               0            0          0

 CC     12         0            0             0               0             0          0

도움 부탁합니다.   

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

안쪽 select에서 월별 group by를 추가하고

바깥쪽에서도 group by 가 되면 될 듯 싶습니다.

 

샘플 데이타를 상상해서 쿼리를 짜야되는데, 제 머리는 나빠서 그렇게까지는 잘 안되네요.. ㅋ

우욱님이 2012-11-26 10:10에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6594DB 디자인 도움좀 부탁해요. 인사과. [2]
우세연
2012-12-19
7378
6592SQL server user license 질문.. [2]
코스
2012-12-17
7804
6560INSERT OPENQUERY 질문입니다.
곰보
2012-12-12
7631
6469월별 장비상태에 따른 통계합계 [1]
길정운
2012-11-24
7970
6464vpn 혹은 odbc 문제 [3]
최광훈
2012-11-23
8097
6463원화를 $로 표기 [1]
왕초보
2012-11-23
7398
64627일 간 빠짐없이 방문한 사람 기록 찾기 [1]
정철민
2012-11-23
7791
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다