4 개의 테이블을 조인 할 때 결과 내에서 데이터가 들어오는 테이블을 식별해야합니다. 왼쪽 외부 조인을 사용하여 Tbl1에 Tbl2에 가입합니다. 나는 왼쪽 외부 조인을 사용하여 Tbl1에 Tbl1을 가입시키고 Tbl1과 Tbl4에 동일한 것으로 가입합니다. SerialNo는 모든 테이블을 조인하는 주요 필드입니다. 결과는 데이터가 어떤 테이블에서 왔는지 나타낼 필요가 있습니다. 테이블간에 결과를 일치 시키려면 올바른 테이블을 식별해야합니다. 예를 들어 샘플 테이블에서 SerialNo가 ABC123, DEF987 및 HJK321 인 레코드에 대해 Tbl2가 결과에 있음을 보여주고 싶습니다.여러 SQL Server 조인의 결과에 상수 추가
데이터베이스에서 데이터를 추출하는 방법 때문에 저장된 프로 시저를 시작할 수 없으므로 프로세스에서 임시 테이블을 활용할 수 없다면 데이터를 가져올보기가 필요합니다. 나는 결과에보고 싶은 무엇
Tbl1
*Hostname* | *SerialNo*
Laptop1 | ABC123
Laptop2 | DEF987
Desktop1 | WER987
Desktop2 | YRT848
Desktop3 | YTT876
Laptop2 | HJK321
Tbl2
*Location* | *SerialNo*
MS | ABC123
CO | DEF987
CA | ZYC342
AZ | XYZ789
IN | HJK321
...
Result1
*Hostname* | *SerialNo* |*Location* |*RecordOrigin*
Laptop1 | ABC123 |MS |Tbl2
Laptop2 | DEF987 |CO |Tbl2
Desktop1 | WER987 |NULL |Tbl1
Desktop2 | YRT848 |NULL |Tbl1
Desktop3 | YTT876 |NULL |Tbl1
Laptop2 | HJK321 |IN |Tbl2
내가 RecordOrigin 정보를 추가로 테이블을 생성했지만, 내가 제대로 다른 테이블에 가입 할 수 없습니다
.
원본 테이블 테이블 (예 : Tbl1, Tbl2 등)에서 데이터를 편집하거나 구조를 변경할 수 없다는 점도 유의해야합니다.
select
t.Hostname
, t.SerialNo
, l.Location
, RecordOrigin = case
when l.SerialNo is not null
then 'Tbl2'
else 'Tbl1'
end
from Tbl1 as t
left join Tbl2 as l
on t.SerialNo = l.SerialNo