데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

최초값을 찾으려 합니다.

누리블루 2012.12.21 15:11 Views : 7654

문서번호 'e100000001' 가 최초 생성되고

문서가 변경되면 New_key에 새로 'e100000002'이 생성되고 종전번호 'e100000001' 가 old_key로 저장됩니다.

만약 이런 변경이 10여차례발생할 경우 아래처럼 해봤는데 잘 안되네요.


효율적인 방법을 알려주세요.


CREATE TABLE TEST_DHK (NEW_KEY VARCHAR(10),OLD_KEY VARCHAR(10))


INSERT TEST_DHK

SELECT 'E230798001','' UNION ALL

SELECT 'E230798002','E230798001' UNION ALL

SELECT 'E230796003','E230798002' UNION ALL

SELECT 'E230798004','E230796003' UNION ALL

SELECT 'E230796005','E230798004' UNION ALL

SELECT 'E230798006','E230796005' UNION ALL

SELECT 'E230798007','E230798006' UNION ALL

SELECT 'E230796008','E230798007' UNION ALL

SELECT 'E230798009','E230796008' UNION ALL

SELECT 'E230798010','E230798009' UNION ALL

SELECT 'E230798011','' UNION ALL

SELECT 'E230798012','E230798010'


SELECT * FROM TEST_DHK

        WHERE OLD_KEY!=''

          AND OLD_KEY IS NOT NULL


DECLARE @C_KEY BIGINT

DECLARE @O_KEY BIGINT


SELECT @C_KEY = convert(Bigint, Substring('E230798012',2, 9))

SELECT @O_KEY = convert(Bigint, Substring(OLD_KEY,2, 9)) FROM TEST_DHK WHERE NEW_KEY = 'E'+CONVERT(VARCHAR, @C_KEY)


WHILE (@C_KEY) > @O_KEY

   BEGIN

   PRINT @C_KEY

   PRINT @O_KEY

      IF (SELECT OLD_KEY FROM TEST_DHK WHERE NEW_KEY = 'E'+CONVERT(VARCHAR, @C_KEY)) = ''    

         BREAK

      ELSE     

    SELECT NEW_KEY, OLD_KEY

  FROM TEST_DHK

  WHERE NEW_KEY = 'E'+CONVERT(VARCHAR, @O_KEY)

 

SELECT @C_KEY = convert(Bigint, Substring(NEW_KEY,2, 9)) FROM TEST_DHK WHERE NEW_KEY = 'E'+CONVERT(VARCHAR, @O_KEY)

SELECT @O_KEY = convert(Bigint, Substring(OLD_KEY,2, 9)) FROM TEST_DHK WHERE NEW_KEY = 'E'+CONVERT(VARCHAR, @O_KEY)

         CONTINUE

END


부탁드리겠습니다. 고수님들 ^^

No. Subject Author Date Views
6272 temp 테이블 사용 시 주의 사항 중에 질문 드립니다. [2] 디비러 2012.12.26 9496
6271 execute 실행결과에 대한 문의입니다. [1] 광화문 2012.12.26 8935
6270 날짜 하나만 넣고 월별 검색 [2] 군고구마 2012.12.26 9485
6269 저기 mdf 파일을 수정하려는데요 [1] 앗차 2012.12.24 8406
6268 커서 선언후에 IF문을 사용 할 수 없나요? [2] 나는짱이야 2012.12.24 14207
6267 쿼리문의드립니다.ㅠㅠ [5] 황금용이 2012.12.24 7369
6266 컬럼내 문자 간격마다 기호 삽입방법 문의드립니다. [3] 다금바리 2012.12.24 8935
6265 MSSQL 2008 R2 Express 버전은 스케줄러 백업 안되나요? [2] 보충수업 2012.12.23 24406
6264 테이블 없이 sum(합계) 가능할까요? [1] 아싸쿨피스 2012.12.22 8293
6263 오라클 쿼리 질문 [1] 드록바이러스 2012.12.21 7300
» 최초값을 찾으려 합니다. [4] 누리블루 2012.12.21 7654
6261 sql 초짜입니다. sql 설치 관련해서 질문하나만 부탁드릴게요 [1] pertime 2012.12.21 7726
6260 한줄로 보여주려고 하는데 잘 모르겠어요.. [2] neiyan 2012.12.21 8091
6259 2008R2 데이터베이스 메일 설정은 완료했지만 에러가 [1] 전념 2012.12.20 14597
6258 2008R2에 쿼리분석기설치.. [2] 문수정 2012.12.20 13197
6257 조인과 인덱스 관련하여 질문드립니다. [2] 김락중_278785 2012.12.20 7424
6256 sql 시간 [1] skymeet 2012.12.20 8134
6255 inputbuffer 사용 문의 [3] 좋은친구 2012.12.18 9716
6254 저장된 데이터가 연속된 숫자인걸 검색할때. [2] 상쿨 2012.12.18 10094
6253 디비내의 특정테이블에서 데이타가 최종적으로 갱신된날짜?? [2] 문수정 2012.12.18 7367





XE Login