【问题标题】:How is it possible that this select statement works, but this update statement does not in VFP 9?这个 select 语句怎么可能工作,但这个 update 语句在 VFP 9 中却没有?
【发布时间】:2013-01-29 22:41:34
【问题描述】:

概述

我正在尝试在 Visual Fox Pro 9 (VFP9) 中编写 select 语句来更新一行(最终还有其他几条记录,我首先编写了一个 select 语句,它工作得很好,我得到了预期的结果。

但我对 VFP9 语法有点陌生,谁不会在 2013 年出现?我期待包含我的 selectUPDATE 操作有点像UPDATE INNER JOIN 在实际 非 foxprose SQL 中。

我的选择语句,它工作正常。

SELECT temptable3.constate FROM temptable3, prw22001 ;
  WHERE prw22001.empno = temptable3.empno AND temptable3.pssn = prw22001.ssn AND temptable3.empno='5202' AND temptable3.constate <> prw22001.stateid AND prw22001.procyear='2012'

我的更新语句(其中包含我的选择语句并且不起作用):

UPDATE prw22001 ;
  SET prw22001.stateid = SELECT temptable3.constate FROM temptable3, prw22001 ;
  WHERE prw22001.empno = temptable3.empno AND temptable3.pssn = prw22001.ssn AND temptable3.empno='5202' AND temptable3.constate <> prw22001.stateid AND prw22001.procyear='2012'

我收到一条错误消息,显示为 Microsoft Visual FoxPro Command contains unrecognized phrase/keyword. 我看不出它在说什么,我的查询中有 4/5 是我原来的选择语句。

【问题讨论】:

    标签: sql visual-foxpro sql-variant


    【解决方案1】:

    像这样转换你的陈述:

    UPDATE prw22001 ;
      SET prw22001.stateid = temptable3.constate ;
      FROM temptable3, prw22001 ;
      WHERE prw22001.empno = temptable3.empno AND temptable3.pssn = prw22001.ssn AND temptable3.empno='5202' AND temptable3.constate <> prw22001.stateid AND prw22001.procyear='2012'
    

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2010-10-05
      • 2014-07-05
      相关资源
      最近更新 更多