Как создать собственное представление для таблицы SQL с помощью STRAGG () - PullRequest
0 голосов
/ 04 мая 2011

Я пытаюсь создать пользовательское представление для следующей таблицы:

СТОЛ "ОРГ"

  • ИМЯ, VARCHAR2
  • МЕСТО, НОМЕР
  • PLACE_PRIMARY, NUMBER

(PLACE и PLACE_PRIMARY ссылаются на внешний ключ в другой таблице)

И представление в основном объединяет любую строку из ORG с таким же именем и объединяет их МЕСТО в список, но я не совсем понимаю, как сделать предложение WHERE. Вот что у меня есть:

  SELECT org.name, 
         STRAGG(refdata.display_name) place, 
         STRAGG(refdata.display_name) place_primary
    FROM table_organization org, 
         table_reference_data refdata
   WHERE org.name = org.name 
GROUP BY org.name 
ORDER BY org.name;

UPDATE:

Я получил следующее, чтобы получить список столбца PLACE:

SELECT org.name, stragg(DISTINCT org.place)
    FROM table_organization org, table_reference_data refdata
GROUP BY org.name;

Проблема в том, что в настоящее время он показывает только внешний ключ, а не строковое значение из table_reference_data.

1 Ответ

0 голосов
/ 04 мая 2011

Похоже, вам нужно изменить это:

SELECT org.name, stragg(DISTINCT org.place)
    FROM table_organization org, table_reference_data refdata
GROUP BY org.name;

на

SELECT org.name, stragg(DISTINCT refdata.stringvalue)
    FROM table_organization org
    JOIN table_reference_data refdata ON refdata.keycol = org.place
GROUP BY org.name;

(изменение refdata.keycol и refdata.stringvalue для использования реальных имен столбцов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...