cancel
Showing results for 
Search instead for 
Did you mean: 

query de movimientos contables acumulado

Former Member
0 Kudos

Estimados Expertos:

Tengo un query donde se refleja los movimientos contables de cada cuenta, parecido al Libro Mayor. Se añadió este query ya que en el libro mayor no refleja el beneficiario (En favor de) cuando se hace el Pago Efectuado tipo "Cuenta".

Mi problema es que no logro poner el acumulado, ejemplo:

Debit Credit Acumulado

5__________5

_______3_____2

1__________3

Este es el query que estoy utilizando:

SELECT

T1.TransId 'Asiento',

T0.AcctName,

T1.RefDate 'Fecha Contable',

T1.ContraAct 'C.C. o S/N',

T5.CardName 'Nombre S/N',

T1.Ref3Line 'Ck o Referencia',

T4.Memo 'Comentarios',

T1.Debit 'Debe C$',

T1.Credit 'Haber C$',

(T1.Debit - T1.Credit) 'SALDO C$',

T6.Rate 'T/C'

FROM OACT T0

INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode

INNER JOIN OJDT T2 ON T1.Transid = T2.Transid

INNER JOIN OUSR T3 ON T1.UserSign = T3.UserID

INNER JOIN OJDT T4 ON T1.Transid = T4.Transid

LEFT JOIN OVPM T5 ON T1.Transid = T5.Transid

LEFT JOIN ORTT T6 ON T1.RefDate = T6.RateDate

WHERE T0.FormatCode =[%6] AND T1.RefDate BETWEEN AND

ORDER BY T1.RefDate

Sres, ¿como puedo agregar el acumulado?, parecido a como lo muestra el libro mayor. He intentado hacerlo a través de un Stored Procedure pero todo lo que he hecho me ha salido malo.

Humildemente les pido de su valiosa ayuda.

Gracias

Accepted Solutions (0)

Answers (1)

Answers (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola

Con este query me funciono


SELECT T0.TransId, T1.AcctName, T0.ContraAct, T0.Ref3Line, T0.RefDate, T0.Debit, T0.Credit, 
CASE
WHEN T0.Debit = 0 THEN ((SELECT SUM(T.Debit-T.Credit) FROM dbo.JDT1 T WHERE T.TransId < T0.TransId AND T.Account = T0.Account AND T.RefDate BETWEEN '[%0]' AND '[%1]')-T0.Credit)
ELSE ((SELECT SUM(T.Debit-T.Credit) FROM dbo.JDT1 T WHERE T.TransId < T0.TransId AND T.Account = T0.Account AND T.RefDate BETWEEN '[%0]' AND '[%1]')+T0.Debit)
END 'Saldo',
T0.LineMemo
FROM JDT1 T0
INNER JOIN OACT T1 ON T1.AcctCode = T0.Account
WHERE T0.RefDate BETWEEN '[%0]' AND '[%1]' AND T1.FormatCode = '[%2]'
ORDER BY T0.TransId 

Saludos

Former Member
0 Kudos

Gracias Floyola !!!, pero a primera vista el query parese que está bien pero si lo revisas fila x fila, el acumulado no lo da bien, en algunas filas muestra mal el acumulado como que resta el débito y crédito cuando debería de ser solo el crédito.

Former Member
0 Kudos

También necesito que esté ordenado por Fecha (RefDate) y no por Asiento (TransId) ya que hay asientos que son creados de fechas anteriores.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola

Si tienes razon...el saldo acumlado esta errorneo.

Lo que puedes hacer, para ver si puedes descubrir como lo calcula SAP es:

1º Ejecuta el SQL Profiler y selecciona "RPC completed"

2º Desde SAP carga un libro mayor y muestra la columna de saldo acumulado

3º Busca la query que se ejecuto con el libro mayor en el SQL Profiler y pon atencion en donde se calcula el acumulado.

Atte.

Former Member
0 Kudos

Hola Floyola ya tambien utilicé el SQL Server Profiler para ver y nada !!!, probé con todo y no logro calcular el acumulado. Perdon por mostrarme inútil pero ya me tiene enojado y desesperado con esto.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Tampoco me resulta

Lo intente hasta como Stored Procedure y no me funciono, el problema es con las fechas de contabilizacion.

Nose como lo hara SAP 😕

Former Member
0 Kudos

Y que tal sacar el saldo en 0 y llenarlo en un loop posterior (en el Store Procedure)?

Supongo que el corte (iniciar saldo a 0 de nuevo) seria x Acctname y Fecha.

SELECT

T1.TransId 'Asiento',

T0.AcctName,

T1.RefDate 'Fecha Contable',

T1.ContraAct 'C.C. o S/N',

T5.CardName 'Nombre S/N',

T1.Ref3Line 'Ck o Referencia',

T4.Memo 'Comentarios',

T1.Debit 'Debe C$',

T1.Credit 'Haber C$',

0 'SALDO C$',

T6.Rate 'T/C'

FROM OACT T0

INNER JOIN JDT1 T1 ON T1.Account = T0.AcctCode

INNER JOIN OJDT T4 ON T1.Transid = T4.Transid

LEFT JOIN OVPM T5 ON T1.Transid = T5.Transid

LEFT JOIN ORTT T6 ON T1.RefDate = T6.RateDate

WHERE T0.FormatCode =%6 AND T1.RefDate BETWEEN %0 AND %1

ORDER BY T1.RefDate