Hola comunidad, espero me puedan ayudar ya que necesito realizar un reporte con una columna de saldos final, este es la resta del débito y crédito y ya sea sumándole o restando la linea anterior, tengo ya un script que me da la información pero lo que me da es el saldo acumulado por día y yo lo necesito por mes.
Adjunto el código que utilizo para obtener el saldo final.
select Row_NUMBER () OVER (Partition By a.RefDate Order By SUM(a.Debit-a.Credit)desc)[Linea],
a.ShortName[Código], b.CardName[Nombre],
case
when a.TransType = 46 then 'Pagos Efectuados'
when a.TransType = 30 then 'Asiento Contable'
when a.TransType = 18 then 'Factura Proveedores'
when a.TransType = 19 then 'Nota de Crédito Proveedores'
when a.TransType = 321 then 'Reconciliacion Manual'
end [Tipo de Documento],
a.BaseRef[Número de Documento], a.TransId[Número de Operación SAP], a.TaxDate[Fecha de Documento], a.RefDate[Fecha Contabilización], a.DueDate[Fecha de Vencimiento],
c.PymntGroup[Dias Crédito], 0[Días de Vencido], 0[Valor Original], 0[Saldo Inicial], a.Debit[Cargo], a.Credit[Abono],
convert (varchar(20), SUM(a.Debit-a.Credit) OVER (Partition By a.RefDate order By datepart(mm,a.RefDate) Rows Unbounded preceding),1)[Saldo Final],
ISNULL((Select B1.DocNum From OPCH A1 inner join OVPM B1 on A1.ReceiptNum = B1.DocEntry Where A1.DocNum = A.BaseRef),0)[# Documento de Liquidacion],
ISNULL((Select B1.DocDate From OPCH A1 inner join OVPM B1 on A1.ReceiptNum = B1.DocEntry Where A1.DocNum = A.BaseRef),0)[Fecha de Liquidacion]
from JDT1 a left join
OCRD b on a.ShortName=b.CardCode inner join
OCTG c on b.GroupNum = c.GroupNum
where b.CardType ='S' and a.RefDate >= '20200301' and a.RefDate <= '20200331'
Group By a.TransId, a.BaseRef, a.Debit, a.Credit, a.RefDate, a.ShortName, b.CardName, a.TransType, a.BaseRef, a.TaxDate, a.RefDate, a.DueDate, c.PymntGroup
Order By a.RefDate
Agradecería su apoyo, para identificar en donde tengo el problema en el script.
Agradeciendo su tiempo y conocimiento.
Saludos