0

我想根据查询返回的值创建一条趋势线。该逻辑需要适用于在带有 Apex 的 Oracle PLSQL 中将趋势线放在系列上的其他情况。

我的系列有 X 值是日期和 Y 值是时间值。这是我的查询,输出我的日期和 Y 值:

Select  
                null link,
                (START_DATE) label, 

                Round(Avg(Run_TIME),3) "Average Length"

from 
            (Select job_id,
                    (Case :P4_DATE_CHOOSER 
                         WHEN 'Daily' THEN trunc(start_time)
                         WHEN 'Weekly' THEN trunc(start_time, 'WW')
                         WHEN 'Monthly' THEN trunc(start_time, 'MM') 
                    END) "START_DATE",  
                    1440*(END_TIME - START_TIME) "RUN_TIME"
            from apps.NI_INFA_ACTIVITY_LOG_V@util.world

            WHERE

        (:P4_JOB_SIZE_CHOOSER = 'Tiny' AND (1440*(END_TIME - START_TIME)) <= 1
        OR

        :P4_JOB_SIZE_CHOOSER = 'Small' AND (1440*(END_TIME - START_TIME)) > 1 AND 
                        (1440*(END_TIME - START_TIME)) <= 5
        OR

        :P4_JOB_SIZE_CHOOSER = 'Medium' AND (1440*(END_TIME - START_TIME)) > 5 AND 
                        (1440*(END_TIME - START_TIME)) <= 20
        OR
        :P4_JOB_SIZE_CHOOSER = 'Large' AND ((1440*(END_TIME - START_TIME)) > 20)
        OR
        :P4_JOB_SIZE_CHOOSER NOT IN('Small','Medium','Large','Tiny') AND (1440*(END_TIME - START_TIME)) > 0)

        AND
        (INFA_TYPE_CODE = 'WORKFLOW')
        AND
        OBJECT_NAME = :P4_WORKFLOWNAMES
        AND
        (
        :P4_Data_Volume_Chooser = 'Small' AND SUCCESS_SOURCE_ROWS < 100
        OR
        :P4_Data_Volume_Chooser = 'Medium' AND SUCCESS_SOURCE_ROWS > 99 AND SUCCESS_SOURCE_ROWS < 10000
        OR
        :P4_Data_Volume_Chooser = 'Large' AND SUCCESS_SOURCE_ROWS > 9999
        OR
        :P4_Data_Volume_Chooser NOT IN ('Small','Medium','Large')
        )
          )

        WHERE START_DATE BETWEEN  
                    (Case :P4_DATE_CHOOSER 
                         WHEN 'Daily' THEN trunc(to_date(:P4_BEGIN_DATES, 'MM-DD-YY'))
                         WHEN 'Weekly' THEN trunc(to_date(:P4_BEGIN_DATES, 'MM-DD-YY'), 'WW')
                         WHEN 'Monthly' THEN trunc(to_date(:P4_BEGIN_DATES, 'MM-DD-YY'), 'MM') END) 

                AND
                    (Case :P4_DATE_CHOOSER
                         WHEN 'Daily' THEN trunc(to_date(:P4_END_DATE, 'MM-DD-YY'))
                         WHEN 'Weekly' THEN trunc(to_date(:P4_END_DATE, 'MM-DD-YY'), 'WW')
                         WHEN 'Monthly' THEN trunc(to_date(:P4_END_DATE, 'MM-DD-YY'), 'MM') END)

 group by START_DATE 
 order by START_DATE
        ;

理想情况下,我可以使用我现有的查询作为新子查询的来源。

4

0 回答 0