SELECT tp_analise, r.dt_cmpt, r.co_cnes, r.no_razao_social, r.no_fantasia, r.nu_mun_hosp, r.co_proc_realizado, r.co_paciente_sexo, r.co_complexidade, r.co_financiamento, r.co_gestao, r.nu_idade, COUNT(r.nu_aih) AS frequencia, SUM(r.nu_val_tot) AS nu_val_tot, -- Coluna st_idade_regular CASE WHEN tp_analise = 'Parto' AND (r.nu_idade < 9 OR r.nu_idade > 60) THEN 'N' WHEN tp_analise = 'Laqueadura' AND (r.nu_idade < 21 OR r.nu_idade > 60) THEN 'N' ELSE 'S' END AS st_idade_regular, -- Coluna st_sexo_regular CASE WHEN r.co_paciente_sexo = 3 THEN 'S' WHEN r.co_paciente_sexo = 1 THEN 'N' ELSE NULL END AS st_sexo_regular FROM ( SELECT 'Parto' AS tp_analise, r.dt_cmpt, r.co_cnes, e.no_razao_social, e.no_fantasia, r.nu_mun_hosp, r.co_proc_realizado, r.co_paciente_sexo, r.co_complexidade, r.co_financiamento, r.co_gestao, r.nu_idade, r.nu_aih, r.nu_val_tot FROM aih.tb_reduz r left JOIN cnes.tb_estabelecimento e on e.co_cnes = r.co_cnes WHERE r.co_proc_realizado IN ( 0303100028, 0303100036, 0303100044, 0303100052, 0310010012, 0310010039, 0310010047, 0409060011, 0409060070, 0411010018, 0411010026, 0411010034, 0411010050, 0411010077, 0411010085, 0411020013, 0411020021, 0411020030, 0411020048 ) UNION ALL SELECT 'Laqueadura' AS tp_analise, r.dt_cmpt, r.co_cnes, e.no_razao_social, e.no_fantasia, r.nu_mun_hosp, r.co_proc_realizado, r.co_paciente_sexo, r.co_complexidade, r.co_financiamento, r.co_gestao, r.nu_idade, r.nu_aih, r.nu_val_tot FROM aih.tb_reduz r left JOIN cnes.tb_estabelecimento e on e.co_cnes = r.co_cnes WHERE r.co_proc_realizado IN ( 0409060186, 0409060313, 0411010042 ) ) r GROUP BY tp_analise, r.dt_cmpt, r.co_cnes, r.no_razao_social, r.no_fantasia, r.nu_mun_hosp, r.co_proc_realizado, r.co_paciente_sexo, r.co_complexidade, r.co_financiamento, r.co_gestao, r.nu_idade;