我想实现的东西像H2这里描述:更新值
更新tlegacy LCA 设置 lca.pr_dato = ca.calc_holdings_date
... 从TCA CA内部联接上TDD DD ...
,我得到错误:列 “CA.CALC_HOLDINGS_DATE” 不H2找到。
“失踪”字段正在呈现。我尝试了许多变种,但没有运气。 H2是否支持这种更新从其他许多连接表中收集的表中的值的方式?最终,这应该在IBM DB2上运行。它支持那里吗?
我想实现的东西像H2这里描述:更新值
更新tlegacy LCA 设置 lca.pr_dato = ca.calc_holdings_date
... 从TCA CA内部联接上TDD DD ...
,我得到错误:列 “CA.CALC_HOLDINGS_DATE” 不H2找到。
“失踪”字段正在呈现。我尝试了许多变种,但没有运气。 H2是否支持这种更新从其他许多连接表中收集的表中的值的方式?最终,这应该在IBM DB2上运行。它支持那里吗?
对于H2有两个选项。第一个适用于所有数据库:
update tlegacy lca set
lca.pr_dato = (select ca.calc_holdings_date ... from tca ca where ...)
where lca.id in (select ca.id from tca where ...)
第二种选择是使用非标准MERGE语句。如果没有存在该键的行,它将插入新行。
merge into tlegacy(pr_dato) key(id)
select ca.calc_holdings_date, ca.id from tca ca where ...
and exists (select * from tlegacy where ...)
谢谢,我想我就放下H2这一点,除非DB2(Z-OS)具有相同的限制? – 2012-03-02 16:43:51
DB2(任何版本)具有相同的限制,也没有'MERGE'语句。 – 2012-03-02 16:58:17
DB2确实具有'MERGE'语句。它位于[自9.1开始的z/OS]上(http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2z9.doc.sqlref/src/tpc/db2z_sql_merge.htm),以及[Linux/Unix/Windows至少9.5](http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0010873。 HTML)(可能更早)。它与上面的语法不一样,虽然... – bhamby 2012-03-02 17:55:41
请邮寄一些样品输入所需的输出。还写了完整的查询... – Teja 2012-03-02 15:39:07