Sql 使用范围子字符串连接两个表

Sql 使用范围子字符串连接两个表,sql,sql-server-2005,substring,jointable,Sql,Sql Server 2005,Substring,Jointable,我有两张桌子需要合并。我正在尝试将表(a)中数字的前两位与另一个表(B)中列出的数字范围相匹配。结果将是表A的完整记录和表B的护理人员 以下是表格: 表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

我有两张桌子需要合并。我正在尝试将表(a)中数字的前两位与另一个表(B)中列出的数字范围相匹配。结果将是表A的完整记录和表B的护理人员

以下是表格:

表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)
我不是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 
选择A.*,B.护理所有者
从db.Annual_Capture作为,
内部连接db.CAREHOLDERS\u TIN作为B
在A.Main_TIN上=
子串(A.Main\u TIN,1,2)>=B.Care\u EINStart

和子字符串(A.Main_TIN,1,2)请尝试以下操作。我只是提供了正确的语法:

SELECT A.*, B.Care_Owner
FROM db.Annual_Capture AS A
    INNER JOIN db.CAREHOLDERS_TIN AS B
        ON SUBSTRING(A.Main_TIN, 1, 2) >= B.Care_EINStart 
            AND SUBSTRING(A.Main_TIN, 1, 2) <= B.Care_EINEnd
选择A.*,B.护理所有者
来自db.Annual_Capture,作为
内部连接db.CAREHOLDERS\u TIN作为B
在子串上(A.Main\u TIN,1,2)>=B.Care\u EINStart
和子串(A.Main_TIN,1,2)