Hola, Tengo este script de sql que se encuentra dentro de una vista que cree.
El resultado que tira se repiten el campo cuenta en varias filas, todos los demas columnas son distintas, o sea que nunca van aparecer filas iguales.
Necesito sobre la vista que me aparesca la primera fila del grupo por cuenta pero nose como implementarlo.
--Script Sql que realiza un reporte de las cuentas y cuotas de la empresa
SELECT Cuenta,Cuota,denominacion, cant_cuotas,t_cuotas_pagadas,fecha_pago, valor_cuota, importe_abonado, t_f_venc, importe_total, importe_cobrado, saldo, Pagado,
Cliente, [Fecha Vto], id_cobrador, Cobrador
FROM (SELECT i.id_cuenta AS Cuenta, i.id_cuota AS Cuota, pl.denominacion,i_1.cantidad AS cant_cuotas,t_cuo_pag.t_cuotas_pagadas,i.fecha_pag o, i.valor_cuota,
i.importe_abonado,t_cuo_pag.t_f_venc, i.importe_total, t_cuo_pag.t_cuotas_pagadas * i.valor_cuota AS importe_cobrado,
i.importe_total - i.valor_cuota * t_cuo_pag.t_cuotas_pagadas AS saldo, CASE WHEN i.marca_pagado = 1 THEN 'Si' ELSE 'No' END AS Pagado, i.Cliente,
i.fecha_vencimiento AS [Fecha Vto], i.id_cobrador, i.Cobrador
FROM (SELECT cuo.id_cuenta, cuo.id_cuota, cue.id_plan_cuota, cue.valor_cuota, cue.valor_cuota * cuo.marca_pagado AS importe_abonado,
cue.importe_total, cue.saldo, cuo.marca_pagado, cl.apellido_nombre AS Cliente, cuo.fecha_vencimiento, cuo.fecha_pago,
co.id_cobrador, co.apellido_nombre AS Cobrador
FROM dbo.Cuenta AS cue INNER JOIN
dbo.Cuotas AS cuo ON cue.id_cuenta = cuo.id_cuenta INNER JOIN
dbo.Cliente AS cl ON cue.id_cliente = cl.id_cliente LEFT OUTER JOIN
dbo.Cobrador AS co ON cue.id_cobrador = co.id_cobrador) AS i INNER JOIN
--Cuenta las cantidades de cuotas que tiene la cuenta
(SELECT dbo.Cuotas.id_cuenta,COUNT(*)AS cantidad
FROM dbo.Cuotas INNER JOIN
dbo.Cuenta ON dbo.Cuotas.id_cuenta = dbo.Cuenta.id_cuenta
GROUP BY dbo.Cuotas.id_cuenta) AS i_1 ON i.id_cuenta = i_1.id_cuenta INNER JOIN
--Cuenta las cuotas pagadas y busca la ultima fecha vencimiento de la cuota ultima
(SELECT id_cuenta, COUNT(id_cuenta) AS t_cuotas_pagadas, MAX(fecha_vencimiento) AS t_f_venc
FROM dbo.Cuotas AS a_cuo
WHERE (marca_pagado = 'true')
GROUP BY id_cuenta) AS t_cuo_pag ON i.id_cuenta = t_cuo_pag.id_cuenta INNER JOIN
dbo.PlanCuotas AS pl ON i.id_plan_cuota = pl.id_plan_cuota) AS p
order by p.Cuenta desc,p.Cuota
--Referencias de campos
--t_f_venc = representa la fecha de vencimiento de la ultima cuota pagada
--cant_cuotas representa el numero de cuotas que tiene la cuenta
--t_cuotas_pagadas representa el numeros de cuotas pagadas que tiene la cuenta
--importe_cobrado = representa el importe que se va pagando de la cuenta
--importe_abonado= representa el importe abonado del mes , es igual al valor de la cuota salvo cuando no se abona que es cero