gpt4 book ai didi

sql - 找不到多部分标识符的错误

转载 作者:行者123 更新时间:2023-12-03 07:51:00 24 4
gpt4 key购买 nike

我在更新时遇到了一些问题。并得到“找不到多部分的标识符”,因为我用来在不同数据库中的另一个表中进行更新,但是字段使用是相同的。
你能帮我吗。

这是代码:

UPDATE [interface].[dbo].[tre_bos_account_update]
SET [interface].[dbo].[tre_bos_account_update].n_tre_bos_account_update_start_balance = [SasTempDB]..OLT_Balance_Update.StartOfDayBalance
FROM (SELECT StartOfDayBalance from OLT_Balance_Update
WHERE CONVERT(varchar(12), [sastempdb].dbo.OLT_Balance_Update.DateTrx) = CONVERT(varchar(12), GETDATE()))OLT_Balance_Update
WHERE [SasTempDB]..OLT_Balance_Update.ClientNo = [interface].dbo.tre_bos_account_update.vc_tre_bos_account_update_account_no

最佳答案

OLT_Balance_Update是语句中派生表的别名,不属于数据库。

从您在主查询中引用[SasTempDB]..的位置删除OLT_Balance_Update,并可能将其添加到派生表的from子句中。您还需要在派生表中添加ClientNo。

像这样:

UPDATE [interface].[dbo].[tre_bos_account_update]
SET [interface].[dbo].[tre_bos_account_update].n_tre_bos_account_update_start_balance = OLT_Balance_Update.StartOfDayBalance
FROM
(
Select StartOfDayBalance, ClientNo
from [SasTempDB]..OLT_Balance_Update -- This is the actual table in [SasTempDB]
where CONVERT(varchar(12), [sastempdb].dbo.OLT_Balance_Update.DateTrx) = CONVERT(varchar(12), GETDATE())
) OLT_Balance_Update -- This is a table alias for a derived table
WHERE OLT_Balance_Update.ClientNo = [interface].dbo.tre_bos_account_update.vc_tre_bos_account_update_account_no

查看您的查询,我想这是等效的。
update T
set n_tre_bos_account_update_start_balance = O.StartOfDayBalance
from interface.dbo.tre_bos_account_update as T
inner join SasTempDB.dbo.OLT_Balance_Update as O
on T.vc_tre_bos_account_update_account_no = O.ClientNo
where O.OLT_Balance_Update.DateTrx >= dateadd(day, datediff(day, 0, getdate()), 0) and
O.OLT_Balance_Update.DateTrx < dateadd(day, 1+datediff(day, 0, getdate()), 0)
dateadd上的 datediff/ getdate()技巧将删除日期中的时间部分,使用 >=/ =进行比较将使SQL Server能够使用 OLT_Balance_Update.DateTrx上的索引来查找所需的行。

关于sql - 找不到多部分标识符的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com