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

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

재귀 쿼리 질문입니다.

유리의성 2016.06.08 18:03 Views : 2714

CREATE TABLE #TEMP(
 ROW INT IDENTITY,
 LOT CHAR(1),
 GU CHAR(1),
 GROUPCODE INT)

INSERT INTO #TEMP
VALUES
('A', '1', 1),
('B', '1', 2),
('A', '2', 3),
('B', '2', 4),
('A', '1', 3),
('B', '1', 4),
('A', '2', 5),
('B', '2', 5),
('C', '1', 5)
;

WITH QTY(LOT, GROUPCODE, GU, LEVEL, row, prn_code) AS
(
 SELECT LOT, GROUPCODE, GU, 1 AS LEVEL, CAST(row AS INT) ROW, 0 as prn_code
   FROM #temp
  WHERE LOT = 'C'
    and gu = (SELECT MAX(Gu)
                 FROM #temp
                WHERE LOT = 'C')
  UNION ALL
 SELECT A.LOT, A.GROUPCODE, A.GU, B.LEVEL + 1, CAST(A.ROW AS INT), B.row
   FROM #temp A
   INNER JOIN QTY B
      ON (B.GU = 1 AND A.GU = 2 AND A.GROUPCODE = B.GROUPCODE)
      OR (B.GU = 2 AND A.GU = 1 AND A.LOT = B.LOT AND A.GROUPCODE <> B.GROUPCODE AND A.GROUPCODE = (SELECT MAX(GROUPCODE)
                                                                                                      FROM #TEMP
                                                                                                     WHERE GU = A.GU
                                                                                                       AND LOT = B.LOT))  
)  
SELECT * FROM QTY

DROP TABLE #TEMP


여기서 재귀 아래에 MAX부분땜에

재귀 공통 테이블 식 'QTY'의 재귀 부분에는 GROUP BY, HAVING 또는 집계 함수를 사용할 수 없습니다.


이런 에러가 발생하는데 저런 모양의 재귀쿼리를 동작이 되도록 다른쿼리로 바꿀수 있나요?

No. Subject Author Date Views
9392 MS-SQL 관련 문의 [1] 좋은친구 2016.06.16 3467
9391 초년생에 갑자기 팀장님으로 부터 sql 질문을 받아 올립니다; [1] 아마 2016.06.16 2919
9390 유일한 sysadmin 계정 로그인 거부 [3] 베이시안 2016.06.16 3946
9389 ms-sql 디비 스크립트 떠서 다른 디비에 옴기고 싶습니다. [5] 아싸라비아콜롬비아 2016.06.15 2867
9388 쿼리질문드립니다.. [1] 후알유? 2016.06.15 3838
9387 저장프로시저 문법좀 부탁드립니다. [1] ray1231 2016.06.15 2944
9386 2005->2014 서버변경에 따른 프로시저.. (compute by) 양천재 2016.06.14 2535
9385 SQL2014 인스턴스 삭제 rollback 2016.06.14 4418
9384 2012 R2로 2005 버전으로 업그레이드 시 질문있습니다!.. [3] nowaday_ 2016.06.14 2416
9383 윈도우10 SQL2000 설치 안되나요? [2] 뉴곰이 2016.06.13 6815
9382 MS-SQL 복제와 미러링에대해 조언 부탁드립니다. [1] 짭거북 2016.06.13 3437
9381 안녕하세요.. 제발 도와주세요 ㅜㅜ (sql connectino 에러) [1] mj124356 2016.06.13 4994
9380 안녕하십니까 선배님들 질문하나 드립니다 (트랜잭션잠금에러) [2] 플러미 2016.06.13 3146
9379 중복 데이터 표시 문의 [2] 다은빈아빠 2016.06.09 4035
9378 합계(SUM) 질문 입니다 ㅠㅠ [1] 떠벙이 2016.06.09 2990
9377 SQL 프로시저 수정요청드립니다 [11] 미련곰퉁아 2016.06.09 3324
» 재귀 쿼리 질문입니다. 유리의성 2016.06.08 2714
9375 master, tempdb 접근제한 진실세상 2016.06.08 2218
9374 설치 문의 ㅜㅜmanagement 가설치가 안되요 . [2] 초보sql하 2016.06.08 2346
9373 쿼리 로그 질문입니다. 유리의성 2016.06.08 2647





XE Login