Sql 查询未更新正确的行

Sql 查询未更新正确的行,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,正在尝试使用迟来的维度数据更新事实表。请参阅下面的代码 UPDATE FactVehicleStock SET FactVehicleStock.[TOL_BidDateTime] = B.Bid_Date_and_Time, FactVehicleStock.[TOL_AuctionDate] = B.Date_opened_for_tender, FactVehicleStock.[TOL_OriginalLoadDate] = B.Original_Load_date, FactVehi

正在尝试使用迟来的维度数据更新事实表。请参阅下面的代码

UPDATE FactVehicleStock
SET 
FactVehicleStock.[TOL_BidDateTime] = B.Bid_Date_and_Time,
FactVehicleStock.[TOL_AuctionDate] = B.Date_opened_for_tender,
FactVehicleStock.[TOL_OriginalLoadDate] = B.Original_Load_date,
FactVehicleStock.[TOL_ServiceHistory] = B.Service_History,
FactVehicleStock.[TOL_ReservedPrice] = B.Reserve_price,
FactVehicleStock.[TOL_BidPrice] = B.Bid_Price,
FactVehicleStock.[TOL_OriginalReservedPrice] = B.Original_Reserve_Price,
FactVehicleStock.[TOL_NoOfTimesReloaded] = B.Number_of_times_reloaded
FROM BMR_DWH.dbo.FactVehicleStock as A 
INNER JOIN BMR_STAGE.dbo.STG_Traders_Online as B
ON  A.StockbookNumber = B.Stock_Number 
INNER JOIN BMR_DWH.[dbo].[DimDealership] as C 
ON A.DEALERSHIP_KEY IN (SELECT Distinct [DEALERSHIP_KEY] 
                        FROM BMR_DWH.[dbo].[DimDealership]  
                        INNER JOIN [BMR_STAGE].[dbo].[STG_Traders_Online] E
                        ON LTRIM(RTRIM(C.MOLNUMBER)) = LTRIM(RTRIM(E.MOL_Number))
)

尝试使用正确的更新选择语法

如果你看一下我做的代码,我不得不对你的查询做一些修改来进行连接。看看是否适合你

 UPDATE BMR_DWH.dbo.FactVehicleStock as a 
           INNER JOIN BMR_STAGE.dbo.STG_Traders_Online as B
              ON  A.StockbookNumber = B.Stock_Number 
           INNER JOIN 
             (SELECT Distinct [DEALERSHIP_KEY] 
                FROM BMR_DWH.[dbo].[DimDealership] as C 
                 INNER JOIN [BMR_STAGE].[dbo].[STG_Traders_Online] E
                   ON LTRIM(RTRIM(C.MOLNUMBER)) = LTRIM(RTRIM(E.MOL_Number)) ) D
              ON A.DEALERSHIP_KEY = D.DEALERSHIP_KEY
  SET 
       FactVehicleStock.[TOL_BidDateTime] = B.Bid_Date_and_Time,
       FactVehicleStock.[TOL_AuctionDate] = B.Date_opened_for_tender,
       FactVehicleStock.[TOL_OriginalLoadDate] = B.Original_Load_date,
       FactVehicleStock.[TOL_ServiceHistory] = B.Service_History,
       FactVehicleStock.[TOL_ReservedPrice] = B.Reserve_price,
       FactVehicleStock.[TOL_BidPrice] = B.Bid_Price,
       FactVehicleStock.[TOL_OriginalReservedPrice] = B.Original_Reserve_Price,
       FactVehicleStock.[TOL_NoOfTimesReloaded] = B.Number_of_times_reloaded

你的问题是?发生了什么?你在期待什么?实际输出是什么?您得到的任何错误答案不适用于MSSQL。编写的语法看起来像MySql