cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda con Query

Former Member
0 Kudos

Jovenes expertos necesito crear un estado de resultado a la medida y me solicitan de la siguiente forma:

Header 1Header 2Header 3Header 4
6101Gastos Generales
610101

Gastos Generales

61010101Sueldos100.00
Sueldos quincena de marzo 2014200.00

que apartir del nivel 5 me detalle el gasto de la cuenta.

Con el plan de cuentas no tuve poblemas pero no puedo hacer que apartir del nivel 5 me muestre los movimientos de la cuenta contable.

Les dejo el query del plan de cuentas


select T0.AcctCode, T0.Segment_0, T0.AcctName, T0.CurrTotal,

        T0.FatherNum, T0.Counter, T0.Levels

    from oact T0

     where T0.Levels='3' and T0.FatherNum >='4'

group by T0.AcctCode, T0.Segment_0, T0.AcctName, T0.Levels, T0.CurrTotal, T0.FatherNum, T0.Counter

union

select T0.AcctCode, T0.Segment_0, T0.AcctName, T0.currTotal,

        T0.FatherNum, T0.Counter, T0.Levels

    from oact T0

     where T0.Levels='4' and T0.FatherNum >='4'

group by T0.AcctCode, T0.Segment_0, T0.AcctName, T0.Levels, T0.CurrTotal, T0.FatherNum, T0.Counter

union

select T0.AcctCode, T0.Segment_0, T0.AcctName, T0.CurrTotal, T0.FatherNum, T0.Counter, T0.Levels

    from oact T0

     where T0.Levels='5' and T0.FatherNum >='4'

group by T0.AcctCode, T0.Segment_0, T0.AcctName, T0.Levels, T0.CurrTotal, T0.FatherNum, T0.Counter

order by T0.Counter

Si me pudieran ayudar se los agradeceria bastante ya que inten hacer vistas pero no me funciono, agradezco cualquier ayuda o alguna otra idea como puedo hacer este reporte se los agradeceria bastante.

De antemano muy agradecido por la ayuda y por sus ideas.

Saludos Coridiales

Accepted Solutions (1)

Accepted Solutions (1)

former_member413321
Contributor

Cuando te refieres a los movimientos, que es lo que deseas visualizar?

Tu query se puede resumir, pero mejor dejame entender bien lo que necesitas.

Former Member
0 Kudos

gracias Alejandro con respecto a tu pregunta, lo que necesito es ver es el movimiento de las cuentas contable de nivel 5

eje.,

la cuenta de ventas necestaria numero de factura, descripcion de la venta, valor de cada factura.

espero me puedas ayudar y por tu ayuda muy agradecido

saludos cordiales

former_member413321
Contributor
0 Kudos

Para tener el detalle de los movimientos tenes que consultar de la tabla OJDT.

Un ejemplo seria lo siguiente.

select T0.AcctCode, T0.Segment_0, T0.AcctName, T0.CurrTotal, 0

Credito,

        T0.FatherNum, T0.Counter, T0.Levels

From oact T0

where T0.Levels in(3,4,5) and T0.FatherNum >='4'

Union

Select T1.Account, '', T1.LineMemo, T1.Debit, T1.Credit, '',0,0

From OACT T0 inner join JDT1 T1 on T0.AcctCode = T1.Account

where T0.Levels in(3,4,5) and T0.FatherNum >='4'

and DueDate >= ?? and DueDate <= ??

Former Member
0 Kudos

Gracias Alejandro por tu valiosa ayuda quedo el reporte perfecto solo lo orden un poco ya que me aparecia desordenado pero quedo perfecto te agradezco bastante.

Saludos

Former Member
0 Kudos

Alejandro perdona fiajte que cuando deseo que me pregunte las fechas me da error que podria ser como puedo hacer que me progunte las fechas que deseo el reporte ya en SAP. este es el error que meda cuando lo modifico en sap

asi es como me quedo el query


select T0.AcctCode, T0.Segment_0, T0.AcctName,''[Ref2],''[Planta], T0.CurrTotal, 0 Credito,

       T0.FatherNum, T0.Counter, T0.Levels

From oact T0

where T0.Levels in(3,4,5) and T0.FatherNum >='4'

union

Select CASE When T0.Levels='5' Then T0.Segment_0 end, CASE When T0.AcctCode=T1.Account Then T0.Segment_0 end[Segment_0],

       T1.LineMemo, T1.Ref2, T1.ProfitCode, T1.Debit, T1.Credit, '',

       CASE When T0.AcctCode=T1.Account Then T0.Counter End,0

From OACT T0 inner join JDT1 T1 on T0.AcctCode = T1.Account

where T0.Levels in(3,4,5) and T0.FatherNum >='4'and DueDate >=[%0] and DueDate <= [%1]

order by T0.Counter, T0.AcctCode

perdona las molestias y espero me puedas ayudar nuevamente.

Saludos

former_member227744
Active Participant
0 Kudos

Carlos:

Solo le falta el alias a tú condición, donde dice DueDate >= [%0] debe decir T1.DueDate >= [%0] y así con T1.DueDate <= [%1]

Saludos,

Manuel

Former Member
0 Kudos

gracias Manuel fijate que colocandolo como me indicas siempre me da el mismo error.

ya hasta prove colocarle comillas simpre '[%0]' y no me funciona tampoco.

Saludos

former_member227744
Active Participant
0 Kudos

Carlos:

Prueba con esto:

Select

CASE When T0.Levels='5' Then T0.Segment_0 end, CASE When T0.AcctCode=T1.Account Then T0.Segment_0 end[Segment_0],  

       T1.LineMemo, T1.Ref2, T1.ProfitCode, T1.Debit, T1.Credit, '', 

       CASE When T0.AcctCode=T1.Account Then T0.Counter End,0

From oact T0  inner join JDT1 T1 on T0.AcctCode = T1.Account

where T0.Levels in(3,4,5) and T0.FatherNum >='4' 

union 

Select

CASE When T0.Levels='5' Then T0.Segment_0 end, CASE When T0.AcctCode=T1.Account Then T0.Segment_0 end[Segment_0],  

       T1.LineMemo, T1.Ref2, T1.ProfitCode, T1.Debit, T1.Credit, '', 

       CASE When T0.AcctCode=T1.Account Then T0.Counter End,0 

From OACT T0 inner join JDT1 T1 on T0.AcctCode = T1.Account 

where T0.Levels in(3,4,5) and T0.FatherNum >='4' and t1.DueDate >= [%0] and t1.DueDate <= [%1]

Saludos,

Manuel

Former Member
0 Kudos

Gracias Manuel pero fijate que de esta forma ya me muestra las cuentas de nivel 3 y 4 y estuve revisando el query pero no me lo muestra. O alguna otra forma

De antemano agradezco tu ayuda.

former_member413321
Contributor
0 Kudos

El problema se presenta con el Union. La consulta se pierde al pedir los parametros.

Probemos de esta manera.

Select CASE When T0.Levels='5' Then T0.Segment_0 else T0.AcctCode end

Campo, T0.Segment_0,

       CASE When T0.Levels='5' Then T1.LineMemo else T0.AcctName end AcctName,

       CASE When T0.Levels='5' Then T1.Ref2 else '' end,

       CASE When T0.Levels='5' Then T1.ProfitCode else '' end [Planta],

       CASE When T0.Levels='5' Then T1.Debit else T0.CurrTotal end Debit,

       CASE When T0.Levels='5' Then T1.Credit else 0 end Credit,

       CASE When T0.Levels='5' Then '' else T0.FatherNum end FatherNum,

       T0.Counter,CASE When T0.Levels='5' Then 0 else T0.Levels end Levels

From OACT T0 left join JDT1 T1 on T0.AcctCode = T1.Account

where T0.Levels in(3,4,5) and T0.FatherNum >='4'and ((T1.DueDate >=[%0] and T1.DueDate <= [%1] ) or (T1.DueDate is null))

order by T0.Counter, T0.AcctCode

Former Member
0 Kudos

wow Alejandro sos un master te agradezco por toda tu ayuda quedo perfecto.

Muy agradecido por tu ayuda

Saludos cordiales

Answers (0)