我有一个使用t-sql merge命令的Stored过程。问题是我需要合并超过1个表。我需要在目标中加入INNER JOIN。这是它现在运行的代码片段 这就是它现在的样子
WITH DealersCTE AS (
SELECT ROW_NUMBER() OVER(PARTITION BY [DealershipName], [Dealer Zip] ORDER BY [DealershipName] ASC, [Dealer Zip] ASC) AS RowNum
, [DealershipName]
, [DAddress]
FROM [DataFeedStaging2]
)
MERGE dbo.Dealers AS Target
USING (
SELECT [DealershipName]
,[DAddress]
FROM DealersCTE
WHERE (RowNum = 1)
) AS Source
ON (Target.[CompanyName] = Source.[DealershipName] AND Target.[Zipcode] = Source.[Dealer Zip])
这就是我试图改变它的方式。因为[VendorID]存储在另一个表中,我想在我可以合并到该字段之前需要进行加入。
WITH DealersCTE AS (
SELECT ROW_NUMBER() OVER(PARTITION BY [VendorID] ORDER BY [VendorID] ASC, [VendorID] ASC) AS RowNum
, [DealershipName]
, [DAddress]
, [VendorID]
FROM [DataFeedStaging2]
)
//The 2 lines below this where added as how i visioned it to work.
//they do not work
MERGE dbo.Dealers
inner join dbo.tblDataFeeds_External on dealers.dealerid = tblDataFeeds_External.dealerid AS Target
USING (
SELECT [DealershipName]
,[DAddress]
,[VendorID]
FROM DealersCTE
WHERE (RowNum = 1)
) AS Source
ON (Target. [VendorID] = Source. [VendorID])
答案 0 :(得分:0)
您可以使用视图作为目标来隐式连接表