【问题标题】:Update error column parameter does not exist更新错误列参数不存在
【发布时间】:2013-09-10 14:19:54
【问题描述】:

尝试执行此查询时出现此错误:

Update failed. 3810: Column/parameter 'edw_workarea.A.A' does not exist.

我正在使用 Teradata 数据库。

UPDATE A
FROM   EDW_WORKAREA.bs A,
       (
           SELECT stg.ccir_ind_id,
                  stg.orig_ccir_id
           FROM   EDW_WORKAREA.se stg
                  INNER JOIN best_svc bc
                       ON  stg.ccir_ind_id = bc.ccir_ind_id
           WHERE  stg.deliverability_score < '6'
                  AND stg.ccir_ind_id IN (SELECT stg.ccir_ind_id
                                          FROM   EDW_WORKAREA.se stg
                                          WHERE  stg.orig_ccir_id IS NULL
                                                 OR  stg.orig_ccir_id = ''
                                          GROUP BY
                                                 stg.ccir_ind_id
                                          HAVING COUNT(*) = 1)
       ) t

SET A.orig_ccir_id = t.orig_ccir_id
    WHERE A.ccir_ind_id = t.ccir_ind_id;

所有的表和列都存在于数据库中。并且 t 中的子查询单独执行成功。

谁能指出错误在哪里?

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    在 Teradata 上,您不应该限定 SET 子句中的列,因此将您的 SQL 更改为:

    update EDW_WORKAREA.bs
    from (
        select ...
    ) t
    set orig_ccir_id = t.orig_ccir_id
    where EDW_WORKAREA.bs.ccir_ind_id = t.ccir_ind_id;
    

    【讨论】:

    • 其中 EDW_WORKAREA.bs.ccir_ind_id = t.ccir_ind_id;将此添加到您的代码中对我有用。没有它,我得到的 ccir_ind_id 是模棱两可的。谢谢丹!!
    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2021-06-21
    • 2019-02-19
    • 2017-08-16
    • 1970-01-01
    相关资源
    最近更新 更多