SELECT * FROM (
SELECT DISTINCT ON(codice_fiscale)
   beneficiario_ultimo AS ben
 , codice_fiscale AS cf
 , comune_sede_legale_attuale AS comsl
 , cap_sede_legale_attuale AS capsl
 , provincia_sede_legale_attuale AS prvsl
 , indirizzo_sede_legale_attuale AS indsl
FROM beneficiari_progetti
LEFT JOIN beneficiari USING(codice_fiscale)
LEFT JOIN progetti USING(id_progetto)
LEFT JOIN linee USING(programma,linea)
LEFT JOIN agevolazioni_richieste_e_concesse USING(id_progetto,codice_fiscale)
WHERE COALESCE(beneficiario_ultimo ILIKE :ben, TRUE)
  AND COALESCE(:ben_adv % ANY(rs_sign_array(beneficiario_ultimo)), TRUE)
  AND (:finanziatoil::text IS NULL OR COALESCE(:finanziatoil::integer = extract(year FROM (atto_concessione_definitiva).data)::integer, FALSE))
  AND (:finanziatoda::text IS NULL OR COALESCE(:finanziatoda::integer <= extract(year FROM (atto_concessione_definitiva).data)::integer, FALSE))
  AND CASE WHEN :ricerca::text IS NOT NULL THEN tipo_linea = 'Ricerca' ELSE TRUE END
) tmp
ORDER BY ben