/*QUERY SENZA COLONNE INSOLUTI*/ SELECT v.id, v.idluce, v.anno, v.numero, tvl.codice lettera, v.dataemissione, v.datascadenza, ri.codice codicefiscale, ri.cognome cognomei, ri.nome nomei, ri.indirizzo, ri.indirizzocivico, ri.citta cittai, ri.cittaprovincia provinciai, ri.cap capi, (SELECT sum(lv.misura) FROM lavoro lv INNER JOIN tipolavoro tl ON lv.tipolavoro=tl.id WHERE lv.idversamento=v.id AND tl.codiceinterno IN (31) ) totaleluci, (SELECT sum(vr.imponibile) FROM versamentoriepilogo vr WHERE vr.idversamento=v.id) totaleimponibile, (SELECT sum(vr.imposta) FROM versamentoriepilogo vr WHERE vr.idversamento=v.id) totaleimposta, (SELECT sum(vr.imponibile + vr.imposta) FROM versamentoriepilogo vr WHERE vr.idversamento=v.id) totaleimporto, (SELECT rtrim(xmlagg(xmlelement(e, d.cognome || ' ' || d.nome ,', ')).extract('//text()').getclobval(), ',') DEFUNTI FROM lavoro lv INNER JOIN defunto d ON lv.iddefunto = d.id WHERE lv.idversamento = v.id) defunti FROM versamento v INNER JOIN tipoversamentolettera tvl ON v.idtipoversamentolettera=tvl.id INNER JOIN richiedente ri ON v.idrichiedenteintestatario = ri.id INNER JOIN richiedente rs ON v.idrichiedentespedizione = rs.id WHERE v.idruolo = [[ruolo_id]] AND v.notacredito=0 AND (SELECT count(*) FROM versamento nc WHERE v.id>0 AND v.id=nc.idversamentonotacredito AND nc.notacredito<>0)=0 AND ( (1=[[tipo_selezione]]) OR (2=[[tipo_selezione]] AND (SELECT count(*) FROM pagamento p WHERE p.idversamento=v.id)> (SELECT count(*) FROM pagamento p WHERE p.idversamento=v.id AND p.datapagamento is NOT null) ) OR (3=[[tipo_selezione]] AND (SELECT count(*) FROM pagamento p WHERE p.idversamento=v.id)>0 AND (SELECT count(*) FROM pagamento p WHERE p.idversamento=v.id)= (SELECT count(*) FROM pagamento p WHERE p.idversamento=v.id AND p.datapagamento is NOT null) ) ) ORDER BY v.anno, v.numero, ri.cognome, ri.nome