Source Table
| Cost Category | Cost Category Type | Q1-2020 | Q2-2020 | Q3-2020 | Q4-2020 |
|---|---|---|---|---|---|
| Employee Impacted | Period Cost | 10 | 20 | 0 | 4000 |
Achieved Result
| Cost Category | Cost Category Type | Quarter Year | Value |
|---|---|---|---|
| Employee Impacted | Period Cost | Q1-2020 | 10 |
| Employee Impacted | Period Cost | Q2-2020 | 20 |
| Employee Impacted | Period Cost | Q3-2020 | 0 |
| Employee Impacted | Period Cost | Q4-2020 | 4000 |
Desired Result
| Cost Category | Cost Category Type | Quarter Year | Quarter | Year | Value |
|---|---|---|---|---|---|
| Employee Impacted | Period Cost | Q1-2020 | Q1 | 2020 | 10 |
| Employee Impacted | Period Cost | Q2-2020 | Q2 | 2020 | 20 |
| Employee Impacted | Period Cost | Q3-2020 | Q3 | 2020 | 0 |
| Employee Impacted | Period Cost | Q4-2020 | Q4 | 2020 | 4000 |
I have been able to achieve table 2 above using below query but not sure how to add quarter and year column as shown in table 3
with a (
Cost_Category,
Cost_Category_Type,
Q1_2020,
Q2_2020,
Q3_2020,
Q4_2020
) as (
select
'Employee Impacted',
'Period Cost',
ATTRIBUTE_34,
ATTRIBUTE_35,
ATTRIBUTE_36,
ATTRIBUTE_37
from view_form_539766
)
select *
from a
unpivot (
value
for Quarter_Year in (
q1_2020 as 'Q1-2020',
q2_2020 as 'Q2-2020',
q3_2020 as 'Q3-2020',
q4_2020 as 'Q4-2020',
)
)
Advertisement
Answer
Use yet another CTE. Your current “solution” is temp CTE in my query; then it is a simple task to extract quarter and year.
SQL> WITH 2 a (cost_category, 3 cost_category_type, 4 q1_2020, 5 q2_2020, 6 q3_2020, 7 q4_2020) 8 AS 9 (SELECT 'Employee Impacted', 'Period cost', 10, 20, 0, 4000 FROM DUAL), 10 temp 11 AS 12 (SELECT * 13 FROM a 14 UNPIVOT (VALUE 15 FOR quarter_year 16 IN (q1_2020 AS 'Q1-2020', 17 q2_2020 AS 'Q2-2020', 18 q3_2020 AS 'Q3-2020', 19 q4_2020 AS 'Q4-2020'))) 20 SELECT t.cost_category, 21 t.cost_category_type, 22 t.quarter_year, 23 SUBSTR (t.quarter_year, 1, 2) quarter, 24 SUBSTR (t.quarter_year, 4) year, 25 t.VALUE 26 FROM temp t 27 / COST_CATEGORY COST_CATEGO QUARTER QUARTER YEAR VALUE ----------------- ----------- ------- -------- ---- ---------- Employee Impacted Period cost Q1-2020 Q1 2020 10 Employee Impacted Period cost Q2-2020 Q2 2020 20 Employee Impacted Period cost Q3-2020 Q3 2020 0 Employee Impacted Period cost Q4-2020 Q4 2020 4000 SQL>