-- Combined dataset
WITH
my_data1 AS (
SELECT
'id1' AS src__id,
'Q1' AS period,
2 AS Amount_A
),
my_data2 AS (
SELECT
'id1' AS src__id,
'Q1' AS period,
9 AS Amount_B
UNION
SELECT
'id2' AS src__id,
'Q2' AS period,
1 AS Amount_B
),
my_data3 AS (
SELECT
'id2' AS src__id,
'Q2' AS period,
4 AS Amount_C
)
SELECT
COALESCE(my_data1.src__id, my_data2.src__id, my_data3.src__id) AS src__id,
COALESCE(my_data1.period, my_data2.period, my_data3.period) AS period,
COALESCE(my_data1.Amount_A, 0) AS Amount_A,
COALESCE(my_data2.Amount_B, 0) AS Amount_B,
COALESCE(my_data3.Amount_C, 0) AS Amount_C
FROM
my_data1
FULL JOIN my_data2 ON my_data1.src__id = my_data2.src__id AND my_data1.period = my_data2.period
FULL JOIN my_data3 ON my_data1.src__id = my_data3.src__id AND my_data1.period = my_data3.period
src__id | | period | | amount_a | | amount_b | | amount_c |
---|---|---|---|---|
id1 | Q1 | 2 | 9 | 0 |
id2 | Q2 | 0 | 1 | 0 |
id2 | Q2 | 0 | 0 | 4 |