繁体   English   中英

将 Pivot 与子查询一起使用时,列定义不明确

[英]Column ambigously defined when using Pivot with subquery

我正在尝试运行此数据透视查询以将日期显示为以下格式的列:“MM/DD/YYYY”以及每个日期中出现的某种 ID:

包含日期的列是 "DATE_POSTED" -- DATA TYPE date 包含 ID 的列是 "ID_INST" -- DATA TYPE varchar2

询问:

SELECT *
FROM (SELECT ID_INST, DATE_POSTED
      FROM total.table1) PIVOT XML (COUNT (DATE_POSTED)
                                           FOR (DATE_POSTED)
                                           IN  (SELECT distinct DATE_POSTED
                                                  FROM total.table1));

我收到的错误是 ORA-00918: 列定义不明确,我进行了一些搜索,但一直收到此错误。 不确定我的方法是否完全正确。 PS 我使用 XML 关键字,因为它提示:缺少关键字

当前表: 当前表

预期结果: 预期结果

请尝试以下操作:

SELECT *
  FROM (SELECT ID_INST, TO_CHAR(DATE_POSTED, 'DD-Mon')  DATE_POSTED
          FROM TOTAL.TABLE1)
  PIVOT XML (COUNT(DATE_POSTED)
             FOR DATE_POSTED IN (ANY))

问题可能是由事实引起的,该日期还存储了除日期之外的时间信息。

因此,您会获得不同的DATE_POSTED值,但转换为 char 会导致相同的列名,因为日期格式掩码会削减时间信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM