Excel 내보내기의 경우 "has-reference-to"및 "is-referenced-from"항목이 모두있는 각 항목에 두 개의 열을 추가해야합니다.자체 참조 테이블의 행 결합
Here is my SQL Fiddle with my tables and my results.
내 테이블 모두 FromItemId
및 ToItemId
CREATE TABLE Item (ItemId INT, Title NVARCHAR(100))
INSERT INTO Item VALUES(1, 'Title 1')
INSERT INTO Item VALUES(2, 'Title 2')
INSERT INTO Item VALUES(3, 'Title 3')
INSERT INTO Item VALUES(4, 'Title 4')
INSERT INTO Item VALUES(5, 'Title 5')
CREATE TABLE ItemReference (ReferenceId INT, FromItemId INT, ToItemId INT)
INSERT INTO ItemReference VALUES(1, 1, 2)
INSERT INTO ItemReference VALUES(2, 1, 3)
INSERT INTO ItemReference VALUES(3, 4, 5)
INSERT INTO ItemReference VALUES(4, 5, 1)
테이블 Item
에서 ItemId
이 포함되어 있습니다.
예상 출력
+---------+------------------+--------------------+
| Title | Has reference to | Is referenced from |
+---------+------------------+--------------------+
| Title 1 | Title 2, Title 3 | Title 5 |
+---------+------------------+--------------------+
| Title 2 | | Title 1 |
+---------+------------------+--------------------+
| Title 3 | | Title 1 |
+---------+------------------+--------------------+
| Title 4 | Title 5 | |
+---------+------------------+--------------------+
| Title 5 | Title 1 | Title 4 |
+---------+------------------+--------------------+
내 쿼리
SELECT item.Title,
ISNULL([Has reference to], '') [Has reference to],
ISNULL([Is referenced from], '') [Is referenced from]
FROM Item item
OUTER APPLY
(
SELECT i.Title + ', '
FROM ItemReference ref
INNER JOIN Item i ON ref.FromItemId = i.ItemId
WHERE ref.FromItemId = item.ItemId
ORDER BY ref.ToItemId DESC
FOR XML PATH('')
) OURT ([Has reference to])
OUTER APPLY
(
SELECT i.Title + ', '
FROM ItemReference ref
INNER JOIN Item i ON ref.ToItemId = i.ItemId
WHERE ref.ToItemId = item.ItemId
ORDER BY ref.FromItemId DESC
FOR XML PATH('')
) OURF ([Is referenced from])
전류 출력
+---------+------------------+--------------------+
| Title | Has reference to | Is referenced from |
+---------+------------------+--------------------+
| Title 1 | Title 1, Title 1 | Title 1 |
+---------+------------------+--------------------+
| Title 2 | | Title 2 |
+---------+------------------+--------------------+
| Title 3 | | Title 3 |
+---------+------------------+--------------------+
| Title 4 | Title 4 | |
+---------+------------------+--------------------+
| Title 5 | Title 5 | Title 5 |
+---------+------------------+--------------------+
로 당신은 볼 수 있습니다, 항목 참조 수를 내 예상 된 결과와 일치하지만 참조의 올바른 제목을 가져올 수 없습니다. 누구든지 올바른 제목을 얻을 수 있도록 도와 줄 수 있습니까? 나는 나무를 볼 수없는 데이터 샘플없이 항목 열이없는 심판 나의 무지 죄송
외부 인용문 모두에서 제목 (i.Title이 아님)을 입력하십시오. BTW는 당신의 바이올린이 나를 위해로드되지 않았습니다 (내 연결에 spcific 수 있습니다). –
SQL Fiddle은 나에게 요즘 느리게 작동하지 않습니다. 로드 할 수도 없습니다. 아마도 복사/붙여 넣기를 직접 작성/삽입 문. –
@CetinBasoz'ItemReference' 테이블에'Title' 컬럼이 없습니다 ... –