Запрос для получения пользовательского представления данных для классификаций акций - PullRequest
0 голосов
/ 09 октября 2018

У меня есть данные, показанные ниже, где у меня есть акции и их класс 1 и класс 2. Нужна помощь в поиске идей для достижения желаемого результата, как показано ниже. Я пробовал несколько базовых методов, но не мог двигаться дальше.быть оцененнымТаким образом, идея состоит в том, чтобы иметь class1 вверху и иметь все class2, повторяемые для всех строк в столбце 3.

Дата таблицы:

enter image description here

Ожидаемый вывод данных:

enter image description here

1 Ответ

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

Возможно, вы захотите что-то вроде следующего, но я не уверен, что это именно то, что вы ищете, так как я не знаю, где вводятся символы S и US в строке 'S, 3, TESTxxx, US'от:

WITH dat AS (SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST123' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST124' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'SECOSEEQ' Class2, 'TEST125' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST126' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST127' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'SOSE' Class2, 'TEST128' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'TEHAEQ' Class2, 'TEST129' Asset FROM dual
              UNION ALL
             SELECT 'INFOTECH' Class1, 'TEHAEQ' Class2, 'TEST130' Asset FROM dual
              UNION ALL
             SELECT 'MATERIAL' Class1, 'ALUMINUM' Class2, 'TEST131' Asset FROM dual
              UNION ALL
             SELECT 'MATERIAL' Class1, 'ALUMINUM' Class2, 'TEST132' Asset FROM dual
              UNION ALL
             SELECT 'MATERIAL' Class1, 'CHEMICAL' Class2, 'TEST133' Asset FROM dual
              UNION ALL
             SELECT 'MATERIAL' Class1, 'CHEMICAL' Class2, 'TEST134' Asset FROM dual)
SELECT CASE WHEN class2 IS NULL 
            THEN '1,'||class1
            WHEN asset IS NULL 
            THEN '2,'||class2
            ELSE 'S,3,'||asset||',US'
       END  
  FROM dat
 GROUP BY class1, ROLLUP(class2,asset)
 ORDER BY class1, class2 nulls first, asset nulls first
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...