2017-04-25 15 views
0

필자는 4 개의 다중 출력을 갖는 하나의 스크립트로 결합하고자하는 값이 하나만있는 4 개의 동일한 스크립트를 가지고 있습니다. 그 이유는 BI Publisher가 여러 스크립트 사이에 여러 x 축 날짜를 렌더링하지 않으므로 스크립트를 하나의 스크립트로 렌더링하기 위해서입니다.동일한 Oracle SQL 스크립트를 하나로 결합 하시겠습니까?

select to_char("DATA_POINT_DAILY_AVG"."DATE_OF_AVG", 'DD-MON-YY') as "DATE_OF_AVG", 
     "DATA_POINT_DAILY_AVG"."VALUE" as "DAILY_AVG_VALUE" 
from "TEST"."COMPONENT" "COMPONENT", 
     "TEST"."COMPONENT_DATA_POINT" "COMPONENT_DATA_POINT", 
     "TEST"."DATA_POINT_DAILY_AVG" "DATA_POINT_DAILY_AVG" 
where "COMPONENT"."SITE_ID" = ('123abc') 
    and "COMPONENT_DATA_POINT"."COMPONENT_ID"="COMPONENT"."ID" 
    and "COMPONENT_DATA_POINT"."NAME"='TEST_1' 
    and "DATA_POINT_DAILY_AVG"."COMPONENT_DATA_POINT_ID" = "COMPONENT_DATA_POINT"."ID" 
    and "DATA_POINT_DAILY_AVG"."SITE_ID" = "COMPONENT"."SITE_ID" 
    and "DATA_POINT_DAILY_AVG"."DATE_OF_AVG" between ('01-FEB-17') and ('28-FEB-17') 
order by "DATA_POINT_DAILY_AVG"."DATE_OF_AVG" desc; 

네 개의 스크립트 사이에서 변화하는 유일한 라인은 다음과 같습니다 : 다음은 네 가지에 대해 동일한 스크립트입니다

and "COMPONENT_DATA_POINT"."NAME"='TEST_1' 

네 (즉,)에 대해 다음과 같이 될 것이다 :

다른
and "COMPONENT_DATA_POINT"."NAME"='TEST_1' 
    and "COMPONENT_DATA_POINT"."NAME"='TEST_2' 
    and "COMPONENT_DATA_POINT"."NAME"='TEST_3' 
    and "COMPONENT_DATA_POINT"."NAME"='TEST_4' 

모든 것이 동일 ... 예상 출력은 다음과 같습니다

DATE_OF_AVG   DAILY_AVG_VALUE_1   DAILY_AVG_VALUE_2   DAILY_AVG_VALUE_3   DAILY_AVG_VALUE_4 
-----------   -----------------   -----------------   -----------------   ----------------- 
06-FEB-17       0       0       0       0 
05-FEB-17       0       0       0       0 
04-FEB-17       0       0       0       0 
03-FEB-17       0       0       0       0 
02-FEB-17       0       0       0       0 
01-FEB-17       0       0       0       0 

하나의 날짜 열에는 다양한 "TEST_x"값을 기반으로 4 가지 값이 있습니다.

이 내용이 도움이되기를 바랍니다. 도움을 주시면 감사하겠습니다. 감사!

답변

0

이 쿼리를보십시오 :

select "COMPONENT_DATA_POINT"."NAME", 
     to_char("DATA_POINT_DAILY_AVG"."DATE_OF_AVG", 'DD-MON-YY') as "DATE_OF_AVG", 
     "DATA_POINT_DAILY_AVG"."VALUE" as "DAILY_AVG_VALUE" 
from "TEST"."COMPONENT" "COMPONENT", 
     "TEST"."COMPONENT_DATA_POINT" "COMPONENT_DATA_POINT", 
     "TEST"."DATA_POINT_DAILY_AVG" "DATA_POINT_DAILY_AVG" 
where "COMPONENT"."SITE_ID" = ('123abc') 
    and "COMPONENT_DATA_POINT"."COMPONENT_ID"="COMPONENT"."ID" 

    and "COMPONENT_DATA_POINT"."NAME" IN ('TEST_1','TEST_2','TEST_3','TEST_4') 

    and "DATA_POINT_DAILY_AVG"."COMPONENT_DATA_POINT_ID" = "COMPONENT_DATA_POINT"."ID" 
    and "DATA_POINT_DAILY_AVG"."SITE_ID" = "COMPONENT"."SITE_ID" 
    and "DATA_POINT_DAILY_AVG"."DATE_OF_AVG" between ('01-FEB-17') and ('28-FEB-17') 
order by "COMPONENT_DATA_POINT"."NAME", 
      "DATA_POINT_DAILY_AVG"."DATE_OF_AVG" desc; 

가이 같은 결과를 생성합니다 :

NAME DATE_OF_AVG   DAILY_AVG_VALUE_1   DAILY_AVG_VALUE_2   DAILY_AVG_VALUE_3   DAILY_AVG_VALUE_4 
---- -----------   -----------------   -----------------   -----------------   ----------------- 
TEST1  06-FEB-17       0       0       0       0 
TEST1  05-FEB-17       0       0       0       0 
.... 
.... 

TEST2  06-FEB-17       0       0       0       0 
TEST2  05-FEB-17       0       0       0       0 
.... 
.... 
TEST3  06-FEB-17       0       0       0       0 
TEST3  05-FEB-17       0       0       0       0 
.... 
.... 
+0

대단히 감사합니다! 당신이 묘사 한대로 작동했습니다! – Fadiddy

+0

이 피벗 데이터가 데이터입니까? 나는 그것이 어떻게되는지를 알지 못한다. 당신은 질의에 대한 설명을 할 수 있겠는가? – JeromeFr