cancel
Showing results for 
Search instead for 
Did you mean: 

Movimientos Contables

Former Member
0 Kudos

hola, estoy trabajando en una query para sacar TODOS los movimientos contables hechas sobre TODAS las cuentas y tambien devolver sus centros de beneficio, asi que necesito alguna validacion de algun experto acerca de las relaciones entre las tablas en la base de datos de SAP (sip, sobre la BD, no es para usar los objetos COM de SAP)

hasta donde se, las tablas involucradas en los movimientos contables () son:

- OJDT Asiento contable

- JDT1 filas Asiento contable

- OACT Cuentas

- OOCR - Reglas de distribucion

- OPRC Centros de Beneficio

..¿o podria simplemente saltarme la tabla OOCR y hacer un join de las tablas JDT1 y OPRC usand el campo PrCode? (la referencia que viene con la ayuda dice que ese campo es una FK de la tabla OOCR asi que por eso es que no tengo seguridad acerca de esto )

muchas gracias!

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Felipe recibe un cordial saludo,

Estuve tomando tu consulta pero quisiera que por favor me indicaras como quedaría incorporando las columnas de NIT y nombre de la empresa involucrada en la transacción. La consulta la adapte de esta manera:

SELECT

je1.TransId

,je.RefDate

,acc.AcctCode

,acc.AcctName

,je.Memo

,je1.Debit

,je1.Credit

FROM

JDT1 as je1

left join OPRC as prc on je1.ProfitCode = prc.PrcCode

left join OPRC as prc2 on je1.OcrCode2 = prc2.PrcCode

left join OPRC as prc3 on je1.OcrCode3 = prc3.PrcCode

left join OPRC as prc4 on je1.OcrCode4 = prc4.PrcCode

left join OPRC as prc5 on je1.OcrCode5 = prc5.PrcCode

inner join OACT as acc on je1.Account = acc.AcctCode

inner join OJDT as je on je1.TransId = je.TransId

and je.RefDate BETWEEN '20140801' AND '20140830'

GROUP BY

je1.TransId

,je.RefDate

,acc.AcctCode

,acc.AcctName

,je.Memo

,je1.Debit

,je1.Credit

De antemano agradezco tus comentarios.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola que tal

Mira hice una query con lo que pediste, en mi caso no tenemos centros de beneficio asignados, pero si en tu empresa los tienen creo que deberia arrojarte los datos

la query es la siguiente

SELECT T0.[TransId], T0.[RefDate], T1.[FormatCode], T0.[ShortName], T0.[ProfitCode], T0.[Debit], T0.[Credit], T0.[LineMemo] FROM JDT1 T0

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

WHERE T0.[RefDate] BETWEEN [%0] AND [%1]

Obs: en los %0 y %1 encierralos en corchetes cada uno

Saludos.

Former Member
0 Kudos

genial, gracias, yo tambien he estado trabajando en una query pero me ha salido mas compleja que esta y con algunas dudas por la duda que mencionaba acerca de la llave de PrcCode de JDT1 que no se si sirve como llave para la tabla de centros de beneficio OPRC o si tendre que cruzarla antes con la tabla de OORC (aunque el nombre del campo es bastante explicito y da para pensar que la manera en que lo estoy usando en la query es correcta)

también esta el tema de que la referencia DI API me dice que no solamente prccode es una FK de OOCR, sino que hay otros cuatro campos que tambien lo son (ocrcode2,ocrcode3,ocrcode4,ocrcode5,), asi que pregunto si esta query me sirve para lo que necesito o me estoy perdiendo algun campo o algo mas que necesite cruzar



SELECT

je1.TransId
,je1.Debit
,je1.Credit
,acc.AcctCode
,acc.AcctName
,prc.PrcName
,prc2.PrcName
,prc3.PrcName
,prc4.PrcName
,prc5.PrcName
,je.Memo

FROM

JDT1 as je1 
left join OPRC as prc on je1.ProfitCode = prc.PrcCode 
left join OPRC as prc2 on je1.OcrCode2 = prc2.PrcCode 
left join OPRC as prc3 on je1.OcrCode3 = prc3.PrcCode 
left join OPRC as prc4 on je1.OcrCode4 = prc4.PrcCode 
left join OPRC as prc5 on je1.OcrCode5 = prc5.PrcCode 
inner join OACT as acc on je1.Account = acc.AcctCode
inner join OJDT as je on je1.TransId = je.TransId 
and je.RefDate <= '20101028 00:00'

GROUP BY

je1.TransId
,je1.Credit
,je1.Debit
,acc.AcctCode
,acc.AcctName
,prc.PrcName
,prc2.PrcName
,prc3.PrcName
,prc4.PrcName
,prc5.PrcName
,je.Memo

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola denuevo

Mira por lo que se, la duda que tiebes con el PrcCode en JDT1 y en OPRC, deveria funcionar.

Modifique la query anterior pero como aca no se usan los centros de beneficios, nose si te funcionara

SELECT T1.FormatCode, T0.ProfitCode, T3.OcrCode, T4.OcrTotal,T2.Balance, SUM(T0.Debit) 'Debe', SUM(T0.Credit) 'Haber', (Sum(T0.debit)-Sum(T0.Credit)) 'Saldo'

FROM JDT1 T0

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

INNER JOIN OPRC T2 ON T0.ProfitCode = T2.PrcCode

INNER JOIN OCR1 T3 ON T3.PrcCode = T2.PrcCode

INNER JOIN OOCR T4 ON T4.OcrCode = T3.OcrCode

WHERE T0.RefDate BETWEEN '20100101' AND '20100131'

Group by T1.FormatCode, T0.ProfitCode,T3.OcrCode, T4.OcrTotal, T2.Balance

Pruebala y me avisas si le falta algo que no tome encuanta.

Saludos