Avalados por :

Cómo invertir las columnas en un reporte de SAP de pérdidas y ganancias para mostrar los centros de costos a la derecha

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Hola a todos

Tenemos este query que amablemente me pasaron hace tiempo donde me trae los datos del reporte nativo de SAP de pérdidas y ganancias. Nos arroja a la derecha los meses y en columna los centros de costos, pero lo quisiéramos al revés, que en las columnas a la derecha aparezcan los centros de costos y poder escoger el mes y año. ¿Alguien podría decirnos cómo sería? Gracias por su ayuda, saludos.

DECLARE @ANIO SMALLINT

SET @ANIO = (SELECT A.Year FROM dbo.OACP A WHERE A.Year='[%0]')

SELECT

P.[Cuenta],

P.[Nombre],

P.[CCosto],

[1] as [Ene],

[2] as [Feb],

[3] as [Mar],

[4] as [Abr],

[5] as [May],

[6] as [Jun],

[7] as [Jul],

[8] as [Ago],

[9] as [Sep],

[10] as [Oct],

[11] as [Nov],

[12] as [Dic]

FROM (

SELECT

T1.FormatCode AS Cuenta,

T1.AcctName AS Nombre,

T2.PrcName AS CCosto,

MONTH(T0.RefDate)'Month',

SUM(T0.Credit-T0.Debit)'CargoAbono'

FROM dbo.JDT1 T0

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

LEFT JOIN dbo.OPRC T2 ON T2.PrcCode=T0.ProfitCode

WHERE YEAR(T0.RefDate)=@ANIO AND T1.GroupMask BETWEEN 1 AND 8

GROUP BY T1.FormatCode, T1.AcctName, T2.PrcName,MONTH(T0.RefDate)

) P

PIVOT (

SUM(CargoAbono)

FOR [Month] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])

) P

ORDER BY P.[Cuenta], P.[CCosto]

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Gracias Juan Carlos

Funcionó perfecto

Saludos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Es cuando no se seleccionó un centro de costo... Puedes cambiar el @ por otro texto (Sin CC, Por definir, etc) , lo haces en la fila 7 del query que te puse.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Juan Carlos

Gracias por tu aporte, al revisarlo ¿a qué se refiere la columna @ esos datos?

Saludos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Víctor, intenta con esto:


declare @CentroCosto as varchar(max)
declare @Query as varchar(max)
DECLARE @ANIO nvarchar(4)
declare @Mes nvarchar(2)
SET @ANIO = (SELECT A.Year FROM dbo.OACP A WHERE A.Year='[%0]')
SET @Mes = (select top 1 B.SubNum from dbo.OFPR B WHERE B.SubNum='[%1]')

set @CentroCosto= STUFF((Select distinct '],['span class="token punctuation">(+ isnull(T2.PrcName,'@') FROM dbo.JDT1 T0
    INNER JOIN dbo.OACT T1 ON T1.AcctCode=T0.Account
    LEFT JOIN dbo.OPRC T2 ON T2.PrcCode=T0.ProfitCode
    WHERE YEAR(T0.RefDate)=@ANIO and month(T0.RefDate) = 2 AND T1.GroupMask BETWEEN 1 AND 8
    GROUP BY T1.FormatCode, T1.AcctName, T2.PrcName FOR XML PATH('')),1,2,'') +']'

set @Query='select * from (
  select T1.FormatCode AS Cuenta, T1.AcctName AS Nombre, isnull(T2.PrcName,''@'') AS CCosto, SUM(T0.Credit-T0.Debit) [CargoAbono]
  FROM dbo.JDT1 T0
  INNER JOIN dbo.OACT T1 ON T1.AcctCode=T0.Account
  LEFT JOIN dbo
            
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?