with uid_keys as (
select distinct
lower(nullif(btrim(rd.uidpensionscheme), '')) as uid_key
from back_office.report_conformity_pu_bu_detail rd
where rd.report_conformity_pu_bu_id = 97
and rd.account in ('38902', '39002')
and nullif(btrim(rd.uidpensionscheme), '') is not null
)
select
f.field_name,
(select count(*) from prod_line.pens_scheme) as scheme_rows,
m.matched_uid,
m.example_name,
m.example_brief
from (
values ('uid_1c'), ('scheme_id_1c'), ('code_1c')
) f(field_name)
cross join lateral (
select
count(distinct k.uid_key) as matched_uid,
min(ps.name) as example_name,
min(ps.brief) as example_brief
from prod_line.pens_scheme ps
join uid_keys k
on k.uid_key = lower(nullif(btrim(
case f.field_name
when 'uid_1c' then ps.uid_1c
when 'scheme_id_1c' then ps.scheme_id_1c
when 'code_1c' then ps.code_1c
end
), ''))
) m;