Sql server 联接中where子句的列名无效或多部分标识符错误
我有这个存储过程,但WHERE子句中的日期有问题。我不断收到无效列名或无法绑定多部分标识符的错误消息 我尝试过各种组合,不包括表名,也不为表使用别名,有无方括号,但我仍然遇到同样的问题Sql server 联接中where子句的列名无效或多部分标识符错误,sql-server,tsql,Sql Server,Tsql,我有这个存储过程,但WHERE子句中的日期有问题。我不断收到无效列名或无法绑定多部分标识符的错误消息 我尝试过各种组合,不包括表名,也不为表使用别名,有无方括号,但我仍然遇到同样的问题 update [SSRSAuditStockProvisionLIVE_backup] set [SSRSAuditStockProvisionLIVE_backup].SalesStatus = ss.Name from [SSRSAuditStockProvisionLIVE_backup] asp inn
update [SSRSAuditStockProvisionLIVE_backup]
set [SSRSAuditStockProvisionLIVE_backup].SalesStatus = ss.Name
from [SSRSAuditStockProvisionLIVE_backup] asp
inner join AuditSalesStatus ass on ass.ArtworkId = asp.ArtworkId
inner join SalesStatus ss on ss.SalesStatusId = ass.NewConsignmentStatusId
where (Convert(date, [SSRSAuditStockProvisionLIVE_backup.Date], 103) = Convert(date, @OldestDateToUpdate, 103))
and ass.ArtworkId = @ArtworkId
and (Convert(date, [AuditSalesStatus.Date], 103) = Convert(date, @OldestDateToUpdate, 103))
这应该行得通
update asp
set asp.SalesStatus = ss.Name
from [SSRSAuditStockProvisionLIVE_backup] asp
inner join AuditSalesStatus ass on
ass.ArtworkId = asp.ArtworkId
inner join SalesStatus ss on
ss.SalesStatusId = ass.NewConsignmentStatusId
WHERE (Convert(date, asp.[Date], 103) = Convert(date, @OldestDateToUpdate, 103))
and ass.ArtworkId = @ArtworkId
and (Convert(date, [AuditSalesStatus.Date], 103) = Convert(date, @OldestDateToUpdate, 103))
如果选择使用别名,则必须在表的所有引用中使用别名。太好了,谢谢!:我只需要将最后一行更改为使用别名,现在它就可以工作了:和Convertdate,ass.[Date],103=Convertdate,@OldestDateToUpdate,103
update [SSRSAuditStockProvisionLIVE_backup]
set SalesStatus = ss.Name
from [SSRSAuditStockProvisionLIVE_backup] asp
inner join AuditSalesStatus ass on ass.ArtworkId = asp.ArtworkId
inner join SalesStatus ss on ss.SalesStatusId = ass.NewConsignmentStatusId
WHERE (Convert(date, asp.Date, 103) = Convert(date, @OldestDateToUpdate, 103))
and ass.ArtworkId = @ArtworkId
and (Convert(date, ass.Date, 103) = Convert(date, @OldestDateToUpdate, 103))