Hola, me acaba de pedir el area de contraloria, desarrollar, el informe de estado de perdidas y ganancias pero por centro de costo, y la verdad no se ni como empezar, solo he realizado reportes sencillos en crystal u consultas mediante el query manager
Ya existe ese reporte, es nativo de SAP, solo es necesario dar clic en ampliado y seleccionar el centro o los centros, dependerá de las dimensiones que tengas configuradas la manera en como se mostrará.
Utiliza las tablas:
OACT Cuentas contables
OJDT Encabezado de asiento
JDT1 Líneas de asiento
OOCR Norma de reparto
OCR1 Filas de Norma de reparto para extraer el factor.
OPRC si deseas que la variable de emisión sea el nombre de la norma de reparto…
Gracias, por tu respuesta efectivamente, ya existe pero el area de contraloria quiere que salga directo, sin seleccionar los centro de costos, por ejemplo
Numero de cuenta Descripcion CC 1 % CC2 % CC3 % Total Global Dif.
Y el angelito del contralor, piensa que solo es cambiar cualquier cosa y, no es asi!!!
Estimado, buscando un poco en la web se encuentra facilmente
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
T0.Account 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 6 AND 8
GROUP BY T0.Account, 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]
En sap hana no tienes la funcion pivot.
Debes hacer una subconsulta por mes
select A."AcctCode", A."AcctName", B."PrcCode", B."PrcName",
ifnull((select sum(C."Credit"-C."Debit") from JDT1 C where C."Account"=A."AcctCode" and C."ProfitCode"=B."PrcCode" and C."RefDate" between '20170101' and '20170131'),0) Ene2017
from OACT A
join OPRC B on 1=1
where A."GroupMask" between '6' and '8'