Gracias Juan Carlos
Funcionó perfecto
Saludos
Avalados por :
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]
Gracias Juan Carlos
Funcionó perfecto
Saludos
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.
Juan Carlos
Gracias por tu aporte, al revisarlo ¿a qué se refiere la columna @ esos datos?
Saludos
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