日期:2014-05-17  浏览次数:20442 次

请教带查询的更新语句应如何写
UPDATE (SELECT X_bq.GID,X_bq.YN FROM X_bq WHERE X_bq.UID=4)  
INNER JOIN (SELECT X_qx.GID,X_qx.YESNO FROM X_qx WHERE X_qx.YID=3)  
ON X_bq.GID = X_qx.GID  
SET X_qx.YESNO = X_bq.YN

以上语句由ACCESS转换而来,在ACCESS能执行,但在SQL2000查询分析器内报错
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'SELECT' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 2
在关键字 'INNER' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 3
在关键字 'ON' 附近有语法错误。
请大师指点应如何修改,谢谢!
------最佳解决方案--------------------
SQL2000不支持你在ACCESS中的写法,要转换成在SQL2000下的执行获得同要结果。
使用楼上DBA的
UPDATE  b  
  SET     b.yseno = a.yn  
FROM    X_bq a ,X_qx b 
 WHERE   a.gid = b.gid  AND
         a.uid = 4   AND 
         b.yid = 3
 
------其他解决方案--------------------

 UPDATE  b
 SET     b.yseno = a.yn
 FROM    X_bq a
         INNER JOIN X_qx b ON a.gid = b.gid
 WHERE   a.uid = 4
         AND b.yid = 3

------其他解决方案--------------------
引用:
SQL code??



1234567

 UPDATE  b  SET     b.yseno = a.yn  FROM    X_bq a          INNER JOIN X_qx b ON a.gid = b.gid  WHERE   a.uid = 4          AND b.yid = 3

发哥升版主了,应该表示下吧。
------其他解决方案--------------------
引用:
引用:SQL code??



1234567

 UPDATE  b  SET     b.yseno = a.yn  FROM    X_bq a          INNER JOIN X_qx b ON a.gid = b.gid  WHERE   a.uid = 4          AND b.yid = ……
都已经发了900分了
------其他解决方案--------------------
楼主你人才啊,这分你给的下手
------其他解决方案--------------------
引用:
SQL2000不支持你在ACCESS中的写法,要转换成在SQL2000下的执行获得同要结果。
使用楼上DBA的
SQL code??123456UPDATE  b    SET     b.yseno = a.yn  FROM    X_bq a ,X_qx b  WHERE   a.gid = b.gid  AND         a.uid = 4   AND  ……
童鞋,总是复制别人的代码学不到东西的,要复制起码要改进一下,让人看出点新意嘛
------其他解决方案--------------------