cancel
Showing results for 
Search instead for 
Did you mean: 

Query Antigüedad de Saldos de Clientes

former_member299313
Participant
0 Kudos

Buen día estimados expertos, antes que nada los saludo y asimismo les deseo un excelente año nuevo,

una vez mas pidiendo de su gran ayuda, me pidieron un query de antigüedad de saldos en sí como el que viene el sistema Finanzas- Informes Financieros- Finanzas- Antigüedad- Antigüedad de saldos de clientes.Solo que me pidieron agregar unos campos adicionales de los cuales no vienen en Parametrizaciones del formulario, asimismo también vi un apartado pero no veo ninguno que pueda servirme, si hay alguien que me pueda ayudar u orientar a como sacar ese query del sistema? de antemano les agradezco por su gran ayuda.

Saludos.

0 Kudos

Hola, como puedo obtener la query como esta armado este informe que tiene sap b1.

Saludos,

Diego

0 Kudos

Hola felipe.loyolarodriguez ,esta probando la query que habías publicado para sacar un informe de antigüedad de saldo de clientes, pero al hacerla correr me aparece el siguiente error:
DataSource.Error: Microsoft SQL: Error al convertir una cadena de caracteres en fecha y/u hora.

Me podrías comentar que puedo hacer para poder obtener este informe, desde ya muchas gracias¡¡¡¡

AlexGourdet
Product and Topic Expert
Product and Topic Expert
0 Kudos

We're glad to have you in the community looking for answers to your questions, but you posted a question as an answer (which I converted to a comment) in a thread which is a few years old from 2016.

I want you to get the help you need, but you're unlikely to get any responses this way. Therefore, I'd like to offer some friendly advice:

* Try asking a new question instead at https://answers.sap.com/questions/ask.html.

Regards,
Alex

Accepted Solutions (0)

Answers (1)

Answers (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes

Este query se parece más al del antiguedad:

DECLARE @VAR INT, @FECHAFIN DATETIME

SET @VAR = (SELECT TOP 1 A.TransId FROM [dbo].[JDT1] A WHERE A.RefDate <='[%0]')

SET @FECHAFIN = '[%0]'

SELECT Y3.SlpName, T0.CardCode, T0.CardName, T1.TransId'Asiento', T4.BaseRef 'Doc Interno', T4.Folionum'Folio', T1.RefDate, T1.TaxDate, T1.DueDate,

CASE

     WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)

     WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)

     ELSE (T1.Debit-T1.Credit)

END 'Saldo',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) <= 30 and T3.DebHab = 'D'  then T1.Debit-T1.Credit-T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) <= 30 and T3.DebHab = 'C'  then T1.Debit-T1.Credit+T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) <= 30 then (T1.Debit-T1.Credit) end '0-30 dias',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 31 AND 60 and T3.DebHab = 'D'  then T1.Debit-T1.Credit-T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 31 AND 60 and T3.DebHab = 'C'  then T1.Debit-T1.Credit+T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 31 AND 60 then (T1.Debit-T1.Credit) end '31-60 dias',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 61 AND 90 and T3.DebHab = 'D'  then T1.Debit-T1.Credit-T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 61 AND 90 and T3.DebHab = 'C'  then T1.Debit-T1.Credit+T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 61 AND 90 then (T1.Debit-T1.Credit) end '61-90 dias',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 91 AND 120 and T3.DebHab = 'D'  then T1.Debit-T1.Credit-T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 91 AND 120 and T3.DebHab = 'C'  then T1.Debit-T1.Credit+T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 91 AND 120 then (T1.Debit-T1.Credit) end '91-120 dias',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 120 and T3.DebHab = 'D'  then T1.Debit-T1.Credit-T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 120 and T3.DebHab = 'C'  then T1.Debit-T1.Credit+T3.ReconSum

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 120 then (T1.Debit-T1.Credit) end '+120 dias',

CASE

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 121 AND 365 and T3.DebHab = 'D'  then (T1.Debit-T1.Credit-T3.ReconSum)*0.75

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 121 AND 365 and T3.DebHab = 'C'  then (T1.Debit-T1.Credit+T3.ReconSum)*0.75

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) BETWEEN 121 AND 365 then (T1.Debit-T1.Credit)*0.75

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 365 and T3.DebHab = 'D'  then (T1.Debit-T1.Credit-T3.ReconSum)

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 365 and T3.DebHab = 'C'  then (T1.Debit-T1.Credit+T3.ReconSum)

WHEN DATEDIFF(DAY,T1.RefDate,@FECHAFIN) > 365 then (T1.Debit-T1.Credit) end 'Deuda Dudosa',            

CASE T1.TransType

     WHEN '13' THEN (SELECT Y.Comments FROM OINV Y WHERE Y.TransId = T1.TransId)

     WHEN '14' THEN (SELECT Y.Comments FROM ORIN Y WHERE Y.TransId = T1.TransId)

     ELSE T1.LineMemo

END 'Comentarios'

FROM dbo.OCRD T0

INNER JOIN dbo.JDT1 T1 ON T1.ShortName = T0.CardCode

INNER JOIN dbo.OACT T2 ON T2.AcctCode = T1.Account

INNER JOIN dbo.OJDT T4 ON T4.TransId = T1.TransId

LEFT JOIN dbo.OINV Y1 ON Y1.TransId = T1.TransId

LEFT JOIN dbo.ORIN Y2 ON Y2.TransId = T1.TransId

LEFT JOIN dbo.OSLP Y3 ON Y3.SlpCode = Y1.SlpCode OR Y3.SlpCode = Y2.SlpCode

LEFT JOIN (SELECT X0.ShortName 'SN', X0.TransId 'TransId', SUM(X0.ReconSum)'ReconSum', X0.IsCredit 'DebHab', X0.TransRowId 'Linea'

          FROM dbo.ITR1 X0

          INNER JOIN dbo.OITR X1 ON X1.ReconNum = X0.ReconNum

          WHERE X1.ReconDate <= @FECHAFIN AND X1.CancelAbs = ''

          GROUP BY X0.ShortName, X0.TransId, X0.IsCredit, X0.TransRowId) T3 ON T3.TransId = T1.TransId AND T3.SN = T1.ShortName AND T3.Linea = T1.Line_ID

WHERE T0.CardType = 'C' AND T1.RefDate <= @FECHAFIN AND

(CASE

     WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)

     WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)

     ELSE (T1.Debit-T1.Credit)

END) != '0'

ORDER BY Y3.SlpCode, T0.CardCode, T1.TransId

FOR BROWSE

Saludos

Former Member
0 Kudos

Muchas gracias, esta consulta ha sido de gran ayuda.

former_member299313
Participant
0 Kudos

Estimado Felipe perdón por la demora de la respuesta, tuve algunos inconvenientes, pero de antemano agradezco de tu gran y valiosa ayuda, retomando el tema del query para antigüedad de saldos, como agrego mas campos de la tabla OHEM los campos son firstName y lastName, la otra es como identificar que tipo de documento es (RF, RN y RP) en el mismo.

reitero mi gratitud por tu gran ayuda.

Saludos,

Noé González