select
    comprobantes_cabeza.*,
    alumnos.nombre as nom_alumno,
    alumnos.direccion,
    alumnos.telefono,
    alumnos.curso,
    alumnos.email,
    carreras.nombre as nom_carrera,
    cast(case
      when comprobantes_cabeza.nro_tipo_comprobante = 1 then 'factura'
      when comprobantes_cabeza.nro_tipo_comprobante = 2 then 'nota de credito'
    end as varchar(20)) as nom_tipo_comprobante,
    cast(comprobantes_cabeza.gravado + comprobantes_cabeza.iva + comprobantes_cabeza.exento as numeric(12, 2)) as total_factura,
    cast(alias_relacion_cuenta_corriente.cantidad_cobros as integer) as cantidad_cobros,
    cast(alias_relacion_cuenta_corriente.importe_cobros as numeric(12, 2)) as importe_cobros,
    cast(case
      when alias_relacion_cuenta_corriente.cantidad_cobros = 1  and
        (comprobantes_cabeza.gravado + comprobantes_cabeza.iva + comprobantes_cabeza.exento) = alias_relacion_cuenta_corriente.importe_cobros then true
      when alias_relacion_cuenta_corriente.cantidad_cobros is null then true
      else false
    end as boolean) as nota_credito_si,
    cast(
      (select
        first 1
        relacion_cuenta_corriente.nro_haber
      from relacion_cuenta_corriente
      where
        relacion_cuenta_corriente.nro_debe = comprobantes_cabeza.nro_comprobante_cabeza) as integer) as nro_cobro
  from comprobantes_cabeza
  inner join alumnos on alumnos.nro_alumno = comprobantes_cabeza.nro_alumno
  inner join carreras on carreras.nro_carrera = alumnos.nro_carrera
  left join
    (select
        relacion_cuenta_corriente.nro_debe,
        count(*) as cantidad_cobros,
        sum(relacion_cuenta_corriente.IMPORTE) as importe_cobros
      from relacion_cuenta_corriente
      group by
        relacion_cuenta_corriente.nro_debe

        ) alias_relacion_cuenta_corriente on alias_relacion_cuenta_corriente.nro_debe = comprobantes_cabeza.nro_comprobante_cabeza
  where
    comprobantes_cabeza.fecha between @fecha_desde and @fecha_hasta
