on 10-18-2010 2:33 PM
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!
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
User | Count |
---|---|
96 | |
10 | |
9 | |
6 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.