select loan_id,lal.principle,extract(month from day) as loan_mon , extract(year from day) as loan_year
from loan_app_loanstatushistroy
inner join loan_app_loan lal on lal.id= loan_id
where status_type=0 and loan_app_loanstatushistroy.status_id in (12,13)
),
--for future updates: add customer filters here
customer_filter as (
select * from (
select distinct cac.id as cust,case when cac2.customer_id is null then 0else1 end as app, cac.first_loan_cycle_id, cac.limit_source, cac.rank_id,
risk_score,
cac.zone_id,
cac.governorate_id,
cac.gender,
cac.marital_status,
cacc.jobtitle_rating,
ccs.banked_income_delta,
ccs.unbanked_income_delta,
case when (regexp_split_to_array(cac.national_id, E'(?=(.)+$)'))[1]='2' then
extract(year from CURRENT_DATE)::integer-(array_to_string((regexp_split_to_array(cac.national_id, E'(?=(.)+$)'))[2:3],'','')::integer+1900)
else extract(year from CURRENT_DATE)::integer-(array_to_string((regexp_split_to_array(cac.national_id, E'(?=(.)+$)'))[2:3],'','')::integer+2000) end as age
from crm_app_customer cac
inner join newlms_mob_view_materialized mmv on mmv.customer_id= cac.id
left join crm_app_consumer cac2 on cac2.customer_id= cac.id
left join customer_creditscores ccs on ccs.customer_id= cac.id
left join credit_app_creditcustomer cacc on cacc.customer_id= cac.id
) as inner_filter
left join datasets_zone on datasets_zone.id= inner_filter.zone_id
left join crm_app_customerrank cacr on cacr.id= inner_filter.rank_id
select min_month, min_year, sum(case when id = first_loan then 1else0 end) as first_transaction from (
select lal.id, lal.customer_id, lal.loan_booking_day, extract (month from lal.loan_booking_day) as min_month, extract (year from lal.loan_booking_day) as min_year,
(select min(lal2.id) from loan_app_loan lal2 where lal2.customer_id= lal.customer_id) as first_loan
from loan_app_loan lal
inner join customer_filter cac on cac.cust= lal.customer_id
inner join merchant_filter mf on mf.id= lal.id
inner join loan_app_loanproduct lalp on lalp.id= lal.loan_product_id
inner join loan_sequence ls on ls.loan_id= lal.id
where 1=1[[and lal.loan_upfront_fee={'number':'admin_fee_percentage'}]]
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=0)),0)/bookings*100,3) end as "0",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=1)),0)/bookings*100,3)end as "1",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=2)),0)/bookings*100,3)end as "2",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=3)),0)/bookings*100,3)end as "3",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=4)),0)/bookings*100,3)end as "4",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=5)),0)/bookings*100,3)end as "5",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=6)),0)/bookings*100,3)end as "6",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=7)),0)/bookings*100,3)end as "7",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=8)),0)/bookings*100,3)end as "8",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=9)),0)/bookings*100,3)end as "9",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=10)),0)/bookings*100,3)end as "10",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=11)),0)/bookings*100,3)end as "11",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=12)),0)/bookings*100,3)end as "12",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=13)),0)/bookings*100,3)end as "13",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=14)),0)/bookings*100,3)end as "14",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=15)),0)/bookings*100,3)end as "15",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=16)),0)/bookings*100,3)end as "16",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=17)),0)/bookings*100,3)end as "17",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=18)),0)/bookings*100,3)end as "18",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=19)),0)/bookings*100,3)end as "19",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=20)),0)/bookings*100,3)end as "20",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=21)),0)/bookings*100,3)end as "21",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=22)),0)/bookings*100,3)end as "22",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=23)),0)/bookings*100,3)end as "23",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=24)),0)/bookings*100,3)end as "24",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=25)),0)/bookings*100,3)end as "25",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=26)),0)/bookings*100,3)end as "26",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=27)),0)/bookings*100,3)end as "27",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=28)),0)/bookings*100,3)end as "28",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=29)),0)/bookings*100,3)end as "29",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=30)),0)/bookings*100,3)end as "30",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=31)),0)/bookings*100,3)end as "31",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=32)),0)/bookings*100,3)end as "32",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=33)),0)/bookings*100,3)end as "33",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=34)),0)/bookings*100,3)end as "34",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=35)),0)/bookings*100,3)end as "35",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=36)),0)/bookings*100,3)end as "36",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=37)),0)/bookings*100,3)end as "37",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=38)),0)/bookings*100,3)end as "38",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=39)),0)/bookings*100,3)end as "39",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=40)),0)/bookings*100,3)end as "40",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=41)),0)/bookings*100,3)end as "41",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=42)),0)/bookings*100,3)end as "42",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=43)),0)/bookings*100,3)end as "43",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=44)),0)/bookings*100,3)end as "44",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=45)),0)/bookings*100,3)end as "45",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=46)),0)/bookings*100,3)end as "46",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=47)),0)/bookings*100,3)end as "47",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=48)),0)/bookings*100,3)end as "48",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=49)),0)/bookings*100,3)end as "49",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=50)),0)/bookings*100,3)end as "50",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=51)),0)/bookings*100,3)end as "51",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=52)),0)/bookings*100,3)end as "52",
case when bookings =0 then 0else round(coalesce ((sum(remaining_principal) filter (where case when (select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]})=1 then mmv.status_id=1else mmv.status_id>=(select id from loan_app_loanstatus where id ={'dropdown_from_table':'status':[table_name:loan_app_loanstatus,column_name_view:name,column_name_key:id]}) or mmv.status_id=7 end and mmv.status_id not in (6,8,12,13,15) and vintage_index=53)),0)/bookings*100,3)end as "53"
from newlms_mob_view_materialized mmv
left join main_query mq on booking_year = mq.loan_year and booking_month = mq.loan_mon
inner join customer_filter cf on cf.cust= mmv.customer_id
inner join loan_app_loan lal on lal.id= loan_id_seq