두 테이블을 조인해야합니다. 나는 다른 테이블 (B)에 나열된 숫자의 범위와 테이블 (A)에있는 숫자의 처음 두 자리를 일치 시키려고 시도하고 있습니다.범위 하위 문자열을 사용하여 두 테이블 조인
표 A :
CREATE TABLE [db].[Annual_Capture](
[id] [int] IDENTITY(1,1) NOT NULL,
[Main_TIN] [char](9),
[MainTaxpayerName] [varchar](20),
[Main_AbstractNumber] [char](3),
[Year] [int] NULL
표 B :
CREATE TABLE [db].[CAREHOLDERS_TIN](
[Care_ID] [int] IDENTITY(1,1) NOT NULL,
[Care_EINStart] [char](2),
[Care_EINEnd] [char](2),
[Care_Owner] [varchar](20)
결과는 이러한 표를 표 B.
의 Careholders 테이블 (A)의 전체를 기록 할 것이다 나는 SQL 전문가가 아니므로 끝없이 검색하면서도 적절한 구문을 알지 못합니다. 가 나는 행운과 함께 다음과 같은 사용하려고 시도하고있다 :
Select A.*, B.Care_Owner
FROM db.Annual_Capture as A,
inner join db.CAREHOLDERS_TIN as B
On A.Main_TIN =
SUBSTRING(A.Main_TIN, 1, 2)>= B.Care_EINStart
AND SUBSTRING(A.Main_TIN, 1, 2) <= B.Care_EINEnd
참고 : Main_TIN는 문자입니다 (9)와 Care_EINStart/Care_EINEnd는 문자입니다 (2). 그래서 Main_TIN이 867530900이라면, 80/90과 같은 EINStart/Care_EINEnd가 지정된 CareOwner를 찾고 있습니다. 모든 A.Main_TIN에 대해이 작업을 수행해야하며 거기에 B.Care_Owners가 할당되어 있어야합니다. 이것은 아마도 스토어드 프로 시저 또는보다 가능성있는 뷰로 끝날 것입니다.
누구나 도움을 줄 수 있다면 정말 고맙습니다.