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 7203 게시물 읽기
No. 7203
SQL 문의 .....ㅜㅜ
작성자
도와주세요ㅜㅜ
작성일
2020-02-04 11:48
조회수
528

안녕하세여....

정말 많은 도움 받고 있는 초보 입니다. 

문의 사항이 또 발생했어요...ㅡㅡ 프로그램은 거의 처음이라...

CONDITION          PARAMETER         VALUE

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

  AAA                         PARA1               77

 BBB                         PARA2              88

 CCC                         PARA 3            99

 DDD                         PARA4           100

 

또다른 테이블

 

CONDITIOIN            PARAMETER          SV       PV

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

  AAA                          DPARA1                 88         

  BBB                          DPARA2                      88

  CCC                          DPARA3                100         

   DDD                         DPARA4                           77

 

에서 두 테이블 조인 (CONDITION이 KEY) 하여 하기와 같은 결과가 나와야 합니다. 

 

CONDITION        PARA1         PARA2       PARA3         PARA4        DPRA1            DPARA2           DPARA3      DPARA4

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

 AAA                     VALUE 값     VALUE값    VALUE값    VALUE 값    PV 혹은 SV    PV혹은 SV        PV혹은 SV   PV혹은 SV 값

 

이렇게 PARAMETER 값을 컬럼으로 가로로 하고 밑에 각 값이 나와야 합니다. 

어떻게 해야 할 까요?  ㅜㅜ

부탁 드립니다. ㅜㅜ 감사합니다.

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

 참고로 CONDTION 및 PARA 값이 너무 많아서.. CASE WHEN 문 사용은 상당히 어려운 상황입니다.ㅜㅜ

 만약 답을 못찾으면,.. 그냥 CASE WHEN 문 죽어라 100 개 정도 사용해야 할 형편입니다. ㅜㅜ

 도와 주세요... ㅜㅜ

도와주세요ㅜㅜ님이 2020-02-04 15:48에 작성한 댓글입니다. Edit

WITH t1 AS
(
SELECT 'AAA' cd, 'PARA1' p, 77 v
UNION ALL SELECT 'AAA', 'PARA2',  88
UNION ALL SELECT 'AAA', 'PARA3',  99
UNION ALL SELECT 'AAA', 'PARA4', 100
UNION ALL SELECT 'BBB', 'PARA1', 100
)
, t2 AS
(
SELECT 'AAA' cd, 'DPARA1' p, 88 sv, null pv
UNION ALL SELECT 'AAA', 'DPARA2', null,   88
UNION ALL SELECT 'AAA', 'DPARA3',  100, null
UNION ALL SELECT 'AAA', 'DPARA4', null,   77
UNION ALL SELECT 'BBB', 'DPARA1', null,   77
)
, t3 AS
(
SELECT cd, p, v FROM t1
 UNION ALL
SELECT cd, p, ISNULL(sv, pv) v FROM t2
)
SELECT *
  FROM t3
 PIVOT (MIN(v) FOR p IN ( para1
                        , para2
                        , para3
                        , para4
                        , dpara1
                        , dpara2
                        , dpara3
                        , dpara4
                        ) ) a
;

마농(manon94)님이 2020-02-05 17:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7206어려운 쿼리 문의 드립니다. 도와 주세요. [4]
초보초보
2020-02-13
580
7205unpivot 관련 문의 [4]
초보초보
2020-02-12
561
7204rollup관련해서 도와주세요 ㅜㅜ [3]
JJ
2020-02-10
545
7203SQL 문의 .....ㅜㅜ [2]
도와주세요ㅜㅜ
2020-02-04
528
7202마농님 글 감사 드립니다. 한번 더 혹시 봐 주실 수 있나요? [2]
도와주세요ㅜㅜ
2020-01-17
615
7201SQL 문의..... [5]
도와주세요ㅜㅜ
2020-01-16
591
7200GROUP으로 묶어서 가장낮은것만 출력하고 싶어요 [3]
김우성
2020-01-13
541
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.068초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다