ZCA_METRIC_BREAKDOWN_V
Details
-
Schema: FUSION
-
Object owner: ZCA
-
Object type: VIEW
Columns
Name |
---|
GOAL_ID GOAL_FREQUENCY BREAKDOWN_FREQUENCY IS_FOR_LATER_DATE BREAKDOWN_MEASURED_ALIAS KPI_ID RESOURCE_ID BREAKDOWN_PERIOD_START_DATE BREAKDOWN_PERIOD_END_DATE LAST_DAY_OF_PERIOD NO_OF_DAYS_IN_PERIOD BREAKDOWN_MEASUREMENT_DATE DAY_ACTUAL PERIOD_RUNNING_ACTUAL X_DAY_ACTUAL X_PERIOD_RUNNING_ACTUAL Y_DAY_ACTUAL Y_PERIOD_RUNNING_ACTUAL |
Query
SQL_Statement |
---|
WITH all_goaltz_actuals AS (select ga.resource_id as resource_id, ga.goal_id as goal_id, cast(from_tz(target_start_date, 'UTC') AT TIME ZONE (nvl (timezone_code,'UTC')) as timestamp) as target_start_date, cast(from_tz(target_end_date, 'UTC') AT TIME ZONE (nvl (timezone_code,'UTC')) as timestamp) as target_end_date, ga.target_start_date as utc_target_start_date, ga.target_end_date as utc_target_end_date, nvl(g.timezone_code,'UTC') as goal_timezone from zca_goal_actuals ga, zca_goals g where g.goal_id = ga.goal_id ),all_dates AS ( SELECT (SELECT MIN(trunc(target_start_date)) FROM all_goaltz_actuals) + level - 1 AS the_date FROM (select 1 from fusion.zca_goals group by 1) CONNECT BY (SELECT MIN(trunc(target_start_date)) FROM all_goaltz_actuals) + level - 1 <= (SELECT MAX(trunc(target_end_date) ) FROM all_goaltz_actuals) ),goal_daily_actuals AS ( SELECT g.goal_id, g.frequency, g.kpi_id, ga.resource_id, ga.goal_timezone, ga.target_start_date, ga.target_end_date, MAX(ga.target_end_date) last_day_of_period, MAX(trunc(ga.target_end_date) ) - MIN(trunc(ga.target_start_date) ) + 1 no_of_days_in_period, ad.the_date, SUM(nvl(kdv.kpi_value,0) ) day_actual, SUM(nvl(kdv.x_kpi_value,0)) x_day_actual, SUM(nvl(kdv.y_kpi_value,0)) y_day_actual FROM all_goaltz_actuals ga, zca_goals g, all_dates ad, ( SELECT b.kpi_id, b.kpi_obj_rec_id, b.kpi_txn_time, b.credit_recipient_resource_id, b.kpi_category_cd, b.kpi_category_name, CASE WHEN b.split_category='NONE' THEN nvl(b.kpi_value,0) END kpi_value, CASE WHEN b.split_category='NUMER' THEN nvl(b.kpi_value,0) END x_kpi_value, CASE WHEN b.split_category='DENOM' THEN nvl(b.kpi_value,0) END y_kpi_value FROM zca_kpi_transactions b WHERE sys_extract_utc(systimestamp) > b.kpi_txn_time ) kdv WHERE ad.the_date BETWEEN trunc(ga.target_start_date) AND trunc(ga.target_end_date) AND ad.the_date = trunc (cast(from_tz(kdv.kpi_txn_time (+) , 'UTC') AT TIME ZONE (ga.goal_timezone) as timestamp)) AND ga.goal_id = g.goal_id AND ga.resource_id = kdv.credit_recipient_resource_id (+) AND g.kpi_id = kdv.kpi_id (+) AND kdv.kpi_txn_time (+) BETWEEN ga.utc_target_start_date AND ga.utc_target_end_date GROUP BY g.goal_id, g.frequency, g.kpi_id, ga.resource_id, ga.goal_timezone, ga.target_start_date, ga.target_end_date, ad.the_date ), goal_period_running_actuals AS ( SELECT l_gda.*, SUM(l_gda.day_actual) OVER( PARTITION BY l_gda.goal_id,l_gda.kpi_id,l_gda.resource_id,l_gda.target_start_date,l_gda.target_end_date ORDER BY l_gda.the_date ASC ) period_running_actual, SUM(l_gda.x_day_actual) OVER( PARTITION BY l_gda.goal_id,l_gda.kpi_id,l_gda.resource_id,l_gda.target_start_date,l_gda.target_end_date ORDER BY l_gda.the_date ASC ) x_period_running_actual, SUM(l_gda.y_day_actual) OVER( PARTITION BY l_gda.goal_id,l_gda.kpi_id,l_gda.resource_id,l_gda.target_start_date,l_gda.target_end_date ORDER BY l_gda.the_date ASC ) y_period_running_actual FROM goal_daily_actuals l_gda ) SELECT gpra.goal_id, gpra.frequency goal_frequency, decode(gpra.frequency,'WEEKLY','DAILY', 'MONTHLY','DAILY','QUARTERLY','MONTHLY','YEARLY','MONTHLY') Breakdown_frequency, CASE WHEN gpra.the_date > trunc(SYS_EXTRACT_UTC(SYSTIMESTAMP)) THEN 'Y' ELSE 'N' END is_For_Later_Date, case when gpra.frequency = 'WEEKLY' or gpra.frequency = 'MONTHLY' then to_char(the_date,'dd') else to_char(the_date,'MON') end Breakdown_Measured_Alias, gpra.kpi_id, gpra.resource_id, cast(from_tz(gpra.target_start_date, gpra.goal_timezone) AT TIME ZONE 'UTC' as timestamp) Breakdown_Period_Start_Date, cast(from_tz(gpra.target_end_date, gpra.goal_timezone) AT TIME ZONE 'UTC' as timestamp) Breakdown_Period_End_Date, gpra.last_day_of_period, gpra.no_of_days_in_period, gpra.the_date Breakdown_Measurement_Date, gpra.day_actual, gpra.period_running_actual, gpra.x_day_actual, gpra.x_period_running_actual, gpra.y_day_actual, gpra.y_period_running_actual FROM goal_period_running_actuals gpra WHERE gpra.frequency in ('WEEKLY', 'MONTHLY') or ( gpra.frequency in ('QUARTERLY', 'YEARLY') and gpra.last_day_of_period = gpra.target_end_date ) |