我有两张表需要加入。我正在尝试将表 (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 Guru,所以尽管无休止地搜索,但我不知道正确的语法。我试图在没有运气的情况下使用以下内容:
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 是 char (9),Care_EINStart/Care_EINEnd 是 char(2)。因此,如果 Main_TIN 是 867530900。我正在寻找分配了 EINStart/Care_EINend 的 CareOwner,例如 80/90。我必须为所有 A.Main_TIN 执行此操作,并将它们与分配的 B.Care_Owners 一起加入。这可能会以存储过程或更可能的视图结束。
如果有人可以提供帮助,非常感谢!