Sql 在对子查询使用Pivot时定义不明确的列
我正在尝试运行此pivot查询,将日期显示为以下格式的列:MM/DD/YYYY,以及在每个日期中出现的某种ID: 包含日期的列是DATE_POSTED-数据类型DATE 包含ID的列是ID_INST-数据类型varchar2 查询:Sql 在对子查询使用Pivot时定义不明确的列,sql,oracle,oracle11g,pivot,Sql,Oracle,Oracle11g,Pivot,我正在尝试运行此pivot查询,将日期显示为以下格式的列:MM/DD/YYYY,以及在每个日期中出现的某种ID: 包含日期的列是DATE_POSTED-数据类型DATE 包含ID的列是ID_INST-数据类型varchar2 查询: SELECT * FROM (SELECT ID_INST, DATE_POSTED FROM total.table1) PIVOT XML (COUNT (DATE_POSTED)
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:列定义含糊不清,我做了一些搜索,但我一直得到这个错误。不确定我的方法是否完全正确。P.S im使用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))
该问题可能是由以下事实引起的:该日期还存储了该日期之外的时间信息
因此,发布的日期会有不同的值,但转换为字符会导致相同的列名,因为日期格式掩码会剪切时间信息。请显示您的表定义是否提供一些示例数据和预期结果?是否尝试过?在这里,我没有得到从total中选择不同日期的要点。表1…@Radagast81让我们说这个表有更多的列,所以我不能在任何地方搜索,我必须在中专门搜索IDdates@D-Shih done,请再次检查问题,我附上了一些示例截图