DB 전문가가 아니기 때문에 SQL Server 2012에 대해 아래 시나리오에서 cte를 작성하려고했지만 내 문제를 해결할 수 없습니다. 어떤 사람이 이것을 알아낼 수있게 도와 주시면 감사하겠습니다.재귀 다 대다 CTE
테이블 Jobcard 및 항목에 대해 Jockcard2Item이라는 테이블이 여러 개 있습니다. 내 경우에는
내가 울부 짖는 소리와 같은 주어진 항목 ID에 대한 모든 Jobcards을 찾으려면,
작 w +는 여러 항목을 가질 수 있으며, 아이템은 많은 Jobcards을 가질 수 있습니다.
- jobcard1 가진 항목 1, 항목 항목 2를 가진 2
- jobcard2, 항목 3
- jobards3 갖는 제 3
- jobcard4 갖는 제 4
내가 싶어 주어진 아이템과 관련된 모든 직업 카드, 다른 사람이있는 경우 동일한 jobcard를 참조하는 항목 (예 : item2를 나타내는 jobcard2)에 포함하려는 항목 그 일자리 카드도.
결과는 내가 쿼리 아래 무한 실행되는려고
, jobcard1, jobcard3, jobcard3를 반환해야합니다. 짖는 소리
DECLARE @itemId int
SELECT @itemId = 12
;WITH temp as(
SELECT jobCard_ID, item_id FROM Jobcard2Item
WHERE item_id = @EstimateID
UNION ALL
SELECT bi.jobCard_ID ,bi.item_id FROM Jobcard2Item
JOIN temp x ON bi.jobCard_ID= x.jobCard_ID where x.item_id not IN (bi.item_id)
)
select * from temp option (maxrecursion 0)
샘플 날짜는
id jobcard_ID, item_ID
1 512 12
2 512 13
3 513 13
4 513 14
5 514 14
6 515 15
7 516 16
는 결과를 반환해야합니다 ITEM_ID으로 내가 12을 통과
- 512,513,514을,이 쿼리는 도움이
샘플 데이터를 제공하면 많은 도움이됩니다. –
샘플 데이터를 추가했습니다. 제발 좀 봐 주실 래요? – inspiedar