Visual Foxpro 9 更新 table 基于另一个 table 的内容
Visual Foxpro 9 update table based on contents of another table
当我 运行 以下查询时,我正确地得到了我需要更改其中一列的行列表...
SELECT b.* from btable b JOIN ptable p ON p.p_empno = b.b_empno WHERE EMPTY(b.b_expdate) AND p.p_active <> [T] AND INLIST(b_beneid,[I],[S])
我的问题是,现在我需要使用相同的条件将 btable.b_expdate 更新为 {^2016-12-31},但无法完全获得有效的语法。 (几年前在foxpro工作,现在在MSSQL工作)
有人可以帮助澄清我需要的语法吗?
我认为它在 MSSQL 中是一样的(我会在那里写同样的东西,使用 '20161231' 或 datefromparts(2016,12,31) 而不是 {^2016/12/31} - 请注意,在 VFP 中 分号是命令行继续字符 ,而不是 MSSQL 中的语句结束字符):
UPDATE bTable ;
SET b_expdate = {^2016/12/31} ;
FROM pTable p ;
WHERE Empty(bTable.b_expdate) ;
AND p.p_empno = bTable.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )
编辑:也许您明年需要与 2017/12/31 相同的代码,改为实现 "this year's Dec 31" 的代码?如果是:
UPDATE bTable ;
SET b_expdate = Date(Year(Date()),12,31) ;
FROM pTable p ;
WHERE Empty(bTable.b_expdate) ;
AND p.p_empno = bTable.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )
EDIT2:这个是你的 table 名字:
UPDATE hbene ;
SET b_expdate = Date(Year(Date()),12,31) ;
FROM hrpersnl p ;
WHERE Empty(hbene.b_expdate) ;
AND p.p_empno = hbene.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )
当我 运行 以下查询时,我正确地得到了我需要更改其中一列的行列表...
SELECT b.* from btable b JOIN ptable p ON p.p_empno = b.b_empno WHERE EMPTY(b.b_expdate) AND p.p_active <> [T] AND INLIST(b_beneid,[I],[S])
我的问题是,现在我需要使用相同的条件将 btable.b_expdate 更新为 {^2016-12-31},但无法完全获得有效的语法。 (几年前在foxpro工作,现在在MSSQL工作)
有人可以帮助澄清我需要的语法吗?
我认为它在 MSSQL 中是一样的(我会在那里写同样的东西,使用 '20161231' 或 datefromparts(2016,12,31) 而不是 {^2016/12/31} - 请注意,在 VFP 中 分号是命令行继续字符 ,而不是 MSSQL 中的语句结束字符):
UPDATE bTable ;
SET b_expdate = {^2016/12/31} ;
FROM pTable p ;
WHERE Empty(bTable.b_expdate) ;
AND p.p_empno = bTable.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )
编辑:也许您明年需要与 2017/12/31 相同的代码,改为实现 "this year's Dec 31" 的代码?如果是:
UPDATE bTable ;
SET b_expdate = Date(Year(Date()),12,31) ;
FROM pTable p ;
WHERE Empty(bTable.b_expdate) ;
AND p.p_empno = bTable.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )
EDIT2:这个是你的 table 名字:
UPDATE hbene ;
SET b_expdate = Date(Year(Date()),12,31) ;
FROM hrpersnl p ;
WHERE Empty(hbene.b_expdate) ;
AND p.p_empno = hbene.b_empno ;
AND p.p_active <> 'T' ;
AND b_beneid IN ( 'I', 'S' )