select r.id, r.numeropaginaregistroiva as numeropagina, r.numerorigaregistroiva as numeroriga, row_number() over(partition by r.idversamento order by v.dataemissione,a.aliquota desc,r.id) as numerorigaperversamento, v.dataemissione as dataregistrazione, v.dataemissione as datadocumento, v.anno as anno, concat(v.anno,'/',v.numero,'/',l.codice) as numerodocumento, l.codice as tipodocumento, trim(concat(ri.cognome,' ',ri.nome)) as nominativo, trim(concat(ri.indirizzo,' ',ri.indirizzocivico)) as indirizzo, trim(concat(ri.cap,' ',ri.citta,' ',ri.cittaprovincia)) as citta, a.descrizione as descrizionealiquota, a.codice as codicealiquota, a.aliquota, 0 as totaledocumento, r.imponibile, r.imposta, (r.imponibile + r.imposta) as totaleperaliquota, ri.esigibilitaiva from versamentoriepilogo r inner join versamento v on v.id = r.idversamento inner join tipoversamentolettera l on l.id = v.idtipoversamentolettera inner join aliquota a on a.id = r.idaliquota inner join richiedente ri on ri.id = v.idrichiedenteintestatario where v.dataemissione between [[dataemissionedal:dbdate]] and [[dataemissioneal:dbdate]] and extract(month from [[dataemissionedal:dbdate]]) = extract(month from [[dataemissioneal:dbdate]]) and l.idsezionale in (101,102,103) and v.numero > 0 and ( select count(*) from versamentoriepilogo r inner join versamento v on v.id = r.idversamento inner join tipoversamentolettera l on l.id = v.idtipoversamentolettera where v.dataemissione between [[dataemissionedal:dbdate]] and [[dataemissioneal:dbdate]] and l.idsezionale in (101,102,103) and v.numero > 0 and r.numeropaginaregistroiva = 0) = 0 order by r.numeropaginaregistroiva,l.codice,v.dataemissione,v.numero,r.id