【发布时间】:2013-07-17 13:39:09
【问题描述】:
我想为所有活动持续时间过长的人更新我的表格。更新应该更正一次,对于后续行,我需要处理新结果。所以想到了类似的东西
UPDATE summary_table st
SET st.screen_on=newScreenOnValue
st.active_screen_on=st.active_screen_on-(st.screen_on-newScreenOnValue) --old-value minus thedifference
FROM (
SUB-SELECT with rowid, newScreenOnValue ... JOIN ... WHERE....
) nv
WHERE (st.rowid=nv.rowid)
我知道我可以通过重新运行相同的查询直接更新第一个和第二个值。但我的问题是子选择的成本似乎很高,因此想避免双重更新。重复运行相同的查询。
上面的SELECT 只是一种非正式的写我想得到的东西的方式。我知道st 不起作用,但我把它留在这里以便更好地理解。当我尝试上述语句时,我总是在 FROM 结束的位置返回一个 SyntaxError。
【问题讨论】:
标签: informix