Files
lakehouse-sarens-integration/transform/models/tap_spreadsheets_everywhere/manageviews_departments.sql
Jeroen 3b3a9dd7c1 Adding loading of positions and workers, and updated transform for
departments to only consider last loaded departments
2025-06-12 16:32:45 +02:00

43 lines
1.1 KiB
SQL

{{
config(
materialized='table'
)
}}
with recursive
latest_departments as (
select *
from (
select *,
row_number() over (partition by id order by _sdc_received_at desc) as rn
from {{ source('tap_spreadsheets_everywhere', 'departments') }}
) t
where rn = 1
),
department_tree as (
-- Anchor: top-level department (parent_id is set to Sarens Group in the Excel)
select
id as department_hris_id,
applicable_organization as name,
null::text as cost_center,
null::text as manager_id,
id::text as path -- start path with own ID
from latest_departments
where parent_id = 'Sarens Group'
union all
-- Recursive part: join child departments
select
d.id as department_hris_id,
d.applicable_organization as name,
null::text as cost_center,
null::text as manager_id,
dt.path || '.' || d.id::text as path
from latest_departments d
join department_tree dt
on d.parent_id = dt.department_hris_id
)
select * from department_tree