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 5891 게시물 읽기
No. 5891
sql cursor 관련 질문입니다.
작성자
궁금이
작성일
2011-05-19 18:07
조회수
6,215

안녕하세요.

db에 저장된 문서들의 폴더 경로명 찾아내려는건데요

내비게이터 방식으로 해야되는데..

추출된 정보는 처음 폴더정보가 동일하게 반복되네요

다른 폴더 정보를 반복되야되는데..



DECLARE @CURRENT_FOLDER_ID AS INT
DECLARE @TD_FOLDER_ID AS INT
DECLARE @PARENT_FOLDER_ID AS INT
DECLARE @CURRENT_FOLDER_NAME AS VARCHAR(100)
DECLARE @PATH AS VARCHAR(4000)

DECLARE CURSOR1 CURSOR FOR
 
    SELECT
        TD_FOLDER_ID
    FROM 
        DOC_FOLDER_INFO
 --ORDER BY TD_FOLDER_ID

OPEN CURSOR1

 --FETCH NEXT FROM CURSOR1 INTO @TD_FOLDER_ID

FETCH FROM CURSOR1 INTO @TD_FOLDER_ID


--SET @CURRENT_FOLDER_ID = 4000
SET @PATH = ''
SET @CURRENT_FOLDER_ID = @TD_FOLDER_ID
DECLARE @TEMP AS INT
 

WHILE @@FETCH_STATUS = 0
BEGIN
 
    SELECT
        @PARENT_FOLDER_ID = TD_PARENT_FOLDER_ID,
        @CURRENT_FOLDER_NAME = TD_FOLDER_NAME
    FROM 
        DOC_FOLDER_INFO
    WHERE
  TD_FOLDER_ID = @TD_FOLDER_ID

    IF @PARENT_FOLDER_ID IS NULL  BREAK

 SET @PATH = @CURRENT_FOLDER_NAME + ' > ' + @PATH

    IF @PARENT_FOLDER_ID = 0  BREAK

 SET @TD_FOLDER_ID = @PARENT_FOLDER_ID



 FETCH NEXT FROM CURSOR1 INTO @TD_FOLDER_ID

 


END

  SELECT @PATH as FULLpath,
   A.td_folder_id,A.TD_FOLDER_NAME,count(a.td_folder_id) as cnt
 FROM DOC_FOLDER_INFO A, TECH_DOC B
 WHERE A.td_folder_id=B.DOC_FOLDER_UID
  --AND A.td_folder_id=@i
 group by A.td_folder_id,A.TD_FOLDER_NAME


CLOSE CURSOR1
DEALLOCATE CURSOR1

GO


--잘못된 결과
FULLpath td_folder_id td_folder_NAME CNT
문서폴더1 1000 문서명1 3
문서폴더1 1000 문서명2 3
문서폴더1 1000 문서명3 3
문서폴더2 2000 문서명4 1
문서폴더3 2000 문서명5 2
문서폴더3 2000 문서명6 2

--구현할 결과
FULLpath td_folder_id td_folder_NAME CNT
문서폴더1 1000 문서명1 3
문서폴더1 1000 문서명2 3
문서폴더1 1000 문서명3 3
문서폴더2>문서폴더1 2000 문서명4 1
문서폴더3>문서폴더2>문서폴더1 2000 문서명5 2
문서폴더3>문서폴더2>문서폴더1 2000 문서명6 2

cnt는 문서갯수입니다.

부탁드립니다.

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

이건 프로그래밍 단에서 돌리는게 맞는듯

붉은시원(red10won)님이 2011-05-30 19:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5894기존테이블 신규컬럼추가후 숫자를 순차적으로 넣기 [2]
김형태
2011-05-23
7455
5893트랜잭션 오류ㅠㅠ [1]
mabin0110
2011-05-23
8008
5892기간조회 쿼리 ㅠㅠ [1]
흑꽁치
2011-05-23
7922
5891sql cursor 관련 질문입니다. [1]
궁금이
2011-05-19
6215
58902008 r2 업그레이드 질문드립니다.
r2
2011-05-19
6474
5889급하게구합니다. mssql2000관리도구 도와주세요
김길동
2011-05-17
6607
5888ms-sql 질문 [1]
손헌희
2011-05-17
6170
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다