【问题标题】:invalid identifier - oracle无效标识符 - oracle
【发布时间】:2012-07-22 02:24:29
【问题描述】:

当我运行下面的查询时,我会收到以下消息:

SQL 错误:ORA-00904:“B”。“MEMBERS_COUNT”:标识符无效 00904. 00000 - "%s: 无效标识符"

select pt.paym_type_name, pt.dvd_allowed, b.members_count
from payment_type pt
where paym_type_id in (select paym_type_id
                        from (SELECT paym_type_id, 
                                     count(paym_type_id) as members_count
                              FROM user_payment
                              WHERE (paym_type_id=1   OR
                                     paym_type_id=2   OR
                                     paym_type_id=3)  AND 
                                     SYSDATE <= (ADD_MONTHS(paym_date, 12) ) 
                              GROUP BY paym_type_id
                              ORDER BY MEMBERS_COUNT DESC) b
                        where rownum=1)
;

我不明白为什么。我该如何解决?我确实需要在末尾添加 MEMBERS_COUNT 列。

【问题讨论】:

    标签: oracle11g


    【解决方案1】:
    select pt.paym_type_name, pt.dvd_allowed, b_outer.members_count
    from payment_type pt,
        (select paym_type_id,members_count
          from (SELECT paym_type_id, 
                       count(paym_type_id) as members_count
                 FROM user_payment
                WHERE (paym_type_id=1   OR
                       paym_type_id=2   OR
                       paym_type_id=3)  AND 
                       SYSDATE <= (ADD_MONTHS(paym_date, 12) ) 
                       GROUP BY paym_type_id
                       ORDER BY MEMBERS_COUNT DESC) b_inner
                       where rownum=1) b_outer
    where paym_type_id =b_outer.paym_type_id
    

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多