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 4390 게시물 읽기
No. 4390
계층 구조 데이터 조회 시 묶어서 보여주는 방법
작성자
이성재(shipscom)
작성일
2008-08-11 20:06
조회수
5,177

PART_CD | PART_NM | DEPTH

001  | 서울 | 1
001001 | 양재지점| 2
001001001 | 양재1동점| 3
002  | 경기 | 1
002001 | 수원지점| 2
002001001 | 화서1동점| 3

위와 같은 데이터가 있을 때 '001001001' 코드로 조회를 했을 때
'서울-양재지점-양재1동점' 처럼 결과가 나오게 하는 방법을 알려주세요..

/*
CREATE TABLE DBO.AGENT_AREA(
 PART_CD VARCHAR(100) NOT NULL,
 PART_NM VARCHAR(100) NOT NULL,
 DEPTH INT NOT NULL
)

INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('001','서울',1)
INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('001001','양재지점',2)
INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('001001001','양재1동점',3)
INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('002','경기',1)
INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('002001','수원지점',2)
INSERT INTO DBO.AGENT_AREA(PART_CD, PART_NM, DEPTH) VALUES('002001001','화서1동점',3)
*/

 

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

 

 

DECLARE @PART_CD VARCHAR(9)

SET @PART_CD =  '001001001'

 

SELECT

       PART_NM = NM1

                    + CASE WHEN NM2 > '' THEN '-' + NM2 ELSE '' END

                    + CASE WHEN NM3 > '' THEN '-' + NM3 ELSE '' END

FROM (

       SELECT

             NM1 = MAX(CASE WHEN DEPTH = 1 THEN PART_NM ELSE '' END)

             , NM2 = MAX(CASE WHEN DEPTH = 2 THEN PART_NM ELSE '' END)

             , NM3 = MAX(CASE WHEN DEPTH = 3 THEN PART_NM ELSE '' END)

       FROM AGENT_AREA

       WHERE PART_CD IN (LEFT(@PART_CD, 3), LEFT(@PART_CD, 6), @PART_CD)

) A

 

여리님이 2008-08-12 09:04에 작성한 댓글입니다. Edit

여리님 쿼리 참조하여 해결했습니다...감사합니다.

이성재(shipscom)님이 2008-08-12 16:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
43942000에 EM서 테이블디자인 클릭하면 오류나는이유가?? [1]
김영재
2008-08-14
4800
4393스토어드 프로시져 관련 질문입니다. [1]
조동건
2008-08-14
5302
4392access 에서 중복된 값을 지울려면.. [1]
최재환
2008-08-13
6422
4390계층 구조 데이터 조회 시 묶어서 보여주는 방법 [2]
이성재
2008-08-11
5177
4389프로시져에서 100개씩 데이타를 읽어서 하나의 Insert문으로 만들기. [4]
홍성훈
2008-08-11
6668
4388stored procedure만 export 할 수 있나요? [2]
궁금
2008-08-09
6692
4387access에서 날짜 입력해서 해당날짜 데이터 뽑아내기.
데이터 베이서
2008-08-08
4795
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다