Как использовать строки из таблицы в качестве столбцов результата в запросе, который выбирается из нескольких таблиц? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть следующий запрос для генерации конкретного отчета

SELECT DATE,
NVL(SUM(P_A),0) AS P_A,
NVL(SUM(P_B),0) AS P_B,
NVL(SUM(P_C),0) AS P_C,
NVL(SUM(P_D),0) AS P_D
FROM(SELECT DISTINCT
     D.ORG,
     D.TYPE,
     D.ID
     D.PART
     D.QTY 
     TO_CHAR(H.ACTUAL_DATE,'YYYYMMDD')
     AS SHIP_DATE,
     CASE
         WHEN D.PART = 'A'
         THEN 
             NVL(D.QTY,0)
         END AS P_A,
     CASE
         WHEN D.PART = 'B'
         THEN 
             NVL(D.QTY,0)
         END AS P_B)
     CASE
         WHEN D.PART = 'C'
         THEN 
             NVL(D.QTY,0)
         END AS P_C,
     CASE
         WHEN D.PART = 'D'
         THEN 
             NVL(D.QTY,0)
         END AS P_D
      FROM V_DTL D, O_HDR H
      WHERE D.ORG='ABC'
      AND D.TYPE IN ('XYZ')
      AND H.ID = D.ID
      AND H.STATUS = 'PQR'
      AND H.ACTUAL_DATE =>
      TO_DATE ('20171001', 'YYYYMMDD')
       AND H.ACTUAL_DATE <
      TO_DATE ('20181002', 'YYYYMMDD')

Сегодня я узнал, что на самом деле существует таблица с именем «Task_Dtl», которая имеет все части (A, B, C, D) Я использую в случае заявления.и могут быть связаны с обеими таблицами в запросе, используя поля (Org, часть и т. д.)

Мой вопрос здесь такой: есть ли способ использовать эту таблицу, чтобы избавиться от жесткого кодирования в запросе (тематические заявления).Проблема в том, что это строки в таблице, но они нужны мне как столбцы для моего набора результатов.

Я посмотрел на операцию сводки, но понял, что она используется при изменении строк таблицы ONE настолбцы или наоборот.Но мне нужно использовать другие таблицы здесь для qty и т. Д. Можно ли здесь использовать pivot?Если да, то как?иначе.Есть ли другой способ, которым мы можем достичь этого.Любая помощь высоко ценится.

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