在 SQL Server 2005 express 中使用连接

Posted

技术标签:

【中文标题】在 SQL Server 2005 express 中使用连接【英文标题】:Using join in SQL Server 2005 express 【发布时间】:2012-02-08 18:33:20 【问题描述】:

我有一个表,我需要根据另一个表的信息对其进行更新。我编写了一个运行良好的选择查询,并准确显示了我需要摆脱的内容,但是当我尝试将其更改为更新查询时,我在加入时遇到错误。我希望这是一个简单的疏忽,有人可以向我指出。

这是有效的选择查询:

select * 
from CustPayShdul
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate

这是返回错误的更新查询:

update custpayshdul 
set custpayshdul.payablebalance = custpayshdul.amount
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate

【问题讨论】:

什么是那些错误??请给我们准确和完整的错误信息.... 【参考方案1】:

您在加入之前缺少FROM custpayshdul。试试:

update custpayshdul
set payablebalance = custpayshdul.amount
FROM custpayshdul
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate

【讨论】:

你太棒了!!!!!!!!!像魅力一样工作!那快把我逼疯了!非常感谢! 很高兴为您提供帮助!如果您也可以将其标记为答案,那就太棒了;)

以上是关于在 SQL Server 2005 express 中使用连接的主要内容,如果未能解决你的问题,请参考以下文章

安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具

SQL Server 2005 小型企业与 SQL Server Express 2012 [关闭]

使用 Java 连接 SQL Server 2005 Express

在 SQL Server 2005 express 中使用连接

已安装 SQL Server 2005,安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具

安装 sql server 2005 express 后 sqlcmd 不工作