lba query
unknown
sql
4 years ago
8.3 kB
14
Indexable
drop table if exists proforma_lba_budget;
create temporary table proforma_lba_budget as (
select load_month
,hire_date
,effective_date
,date_part('year', hire_date) as hire_year
,emp_id
,upper(full_name) as full_name
,mappings.business_line_code
,mappings.business_unit_code
,mappings.market_code
,mappings.function_code
,project_code
,dim_bl.axis_mapping
,dim_bl.business_line_name
,dim_func.function_name
,dim_proj.product_descr
,mappings.reimbursable
from lba_mappings as mappings
left join dim_business_line as dim_bl
on dim_bl.business_line_code = mappings.business_line_code
left join dim_function as dim_func
on mappings.function_code = dim_func.function_code
left join dim_project as dim_proj
on dim_proj.project_id = mappings.project_code
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
drop table if exists consol_lba;
create temporary table consol_lba as (
select case when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.function_code = c.function_code and o.project_code = c.project_code then 'No Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.function_code = c.function_code then 'Project Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.project_code = c.project_code then 'Function Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.function_code = c.function_code and o.project_code = c.project_code then 'Market Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.market_code = c.market_code and o.function_code = c.function_code and o.project_code = c.project_code then 'BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.function_code = c.function_code and o.project_code = c.project_code then 'BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code then 'Project and Function Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.function_code = c.function_code then 'Project and Market Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.market_code = c.market_code and o.function_code = c.function_code then 'Project and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.function_code = c.function_code then 'Project and BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code and o.project_code = c.project_code then 'Function and Market Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.market_code = c.market_code and o.project_code = c.project_code then 'Function and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code and o.project_code = c.project_code then 'Function and BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.function_code = c.function_code and o.project_code = c.project_code then 'Market and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.function_code = c.function_code and o.project_code = c.project_code then 'Market and BL Change'
when o.emp_id = c.emp_id and o.market_code = c.market_code and o.function_code = c.function_code and o.project_code = c.project_code then 'BU and BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.business_unit_code = c.business_unit_code then 'Project, Function, and Market Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.market_code = c.market_code then 'Project, Function, and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.market_code = c.market_code then 'Project, Function, and BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code and o.project_code = c.project_code then 'Function, Market, and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code and o.project_code = c.project_code then 'Function, Market, and BL Change'
when o.emp_id = c.emp_id and o.function_code = c.function_code and o.project_code = c.project_code then 'Market, BU, and BL Change'
when o.emp_id = c.emp_id and o.business_line_code = c.business_line_code then 'Project, Function, Market, and BU Change'
when o.emp_id = c.emp_id and o.business_unit_code = c.business_unit_code then 'Project, Function, Market, and BL Change'
when o.emp_id = c.emp_id and o.project_code = c.project_code then 'Function, Market, BU, and BL Change'
when o.emp_id = c.emp_id then 'Full GL String Change'
when o.emp_id is null and c.hire_date >= '2022-01-01' then '2022 New Hire'
when o.emp_id is null and c.hire_date < '2022-01-01' and c.effective_date < '2021-12-01' then 'Pre-Dec''21 Transfer not in Budget'
when o.emp_id is null and c.hire_date < '2022-01-01' and c.effective_date between '2021-12-01' and '2021-12-31' then 'Dec''21 Transfer not in Budget'
when o.emp_id is null and c.hire_date < '2022-01-01' and c.effective_date >= '2022-01-01' and c.function_code in ('4902', '4917', '4923', '4927') then 'New 2022 Transfer into Core Legacy Function'
when o.emp_id is null and c.hire_date < '2022-01-01' and c.effective_date >= '2022-01-01' and c.function_code not in ('4902', '4917', '4923', '4927') then 'New 2022 Transfer into Core'
when o.emp_id is not null and c.emp_id is null then 'Attrited Heads'
else 'Other' end as status
,c.effective_date
,o.hire_date as original_hire_date
,c.hire_date as current_hire_date
,o.emp_id as original_emp_id
,c.emp_id as current_emp_id
,o.full_name as original_full_name
,c.full_name as current_full_name
,o.business_line_code as original_bl
,c.business_line_code as current_bl
,o.business_unit_code as original_bu
,c.business_unit_code as current_bu
,o.market_code as original_mkt
,c.market_code as current_mkt
,o.function_code as original_function
,c.function_code as current_function
,o.project_code as original_project
,c.project_code as current_project
,o.axis_mapping as original_axis
,c.axis_mapping as current_axis
,o.business_line_name as original_bl_name
,c.business_line_name as current_bl_name
,o.function_name as original_func_name
,c.function_name as current_func_name
,o.product_descr as original_product_desc
,c.product_descr as current_product_desc
,o.reimbursable as original_reimb
,c.reimbursable as current_reimb
from original_lba_budget as o
full join proforma_lba_budget as c
on o.emp_id = c.emp_id
where c.load_month = '2022-03-01'
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28);
select status, count(*) as headcount
from consol_lba
group by 1
order by headcount desc
/*LBA Summary*/
select consol_lba.*,lba_budget.month_beginning, dim_account.account_name, lba_budget.amount
from consol_lba
left join lba_budget
on consol_lba.original_emp_id = lba_budget.emp_id
left join lba_mappings
on consol_lba.current_emp_id = lba_mappings.emp_id
left join dim_account
on dim_account.account_code = lba_budget.account_code
where lba_budget.month_beginning = '2022-03-01'Editor is loading...