Столбец неоднозначно определен при использовании Pivot с подзапросом - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь выполнить этот сводный запрос, чтобы отобразить даты в виде столбцов в следующем формате: «ММ / ДД / ГГГГ» и вхождения каких-либо идентификаторов в каждой дате:

Столбец, содержащий даты: «DATE_POSTED» - дата типа данных Столбец, в котором содержатся идентификаторы: «ID_INST» - ТИП ДАННЫХ 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: столбец двусмысленно определен, я провел несколько поисков, но продолжаю получать эту ошибку. Не уверен, что мой подход полностью правильный. Я использую ключевое слово XML из-за того, что оно подсказало: отсутствует ключевое слово

Текущая таблица: Current table

Ожидаемый результат: Expected Result

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте следующее:

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 приводит к тому же имени столбца, что и маска формата даты, сокращая информацию о времени.

...