Buenos dias.
Espero que alguno me pueda apoyar con este reporte que al utilizar el PIVOT (que es nuevo para mi) no logro el resultado deseado.
En la sentencia que muestro a continuacion lo importante para mi es PIVOTAR por el campo ProfitCode, he probado varias alternativas y no lo consigo.
Los datos de mes [1],[2], etc para mi no son necesarios, los quitare en cuanto lo pase al crystal.
Agradezco la ayuda.
el Pivot deberia ser algo asi supongo: pivot(sum(saldo) for [nombre] in (profitcode))
Dejo la consulta.
@codigo varchar(max),
@Periodo varchar(7)
as
begin
declare @buscar varchar(max)
set @buscar= ''+LEFT(@codigo,2)+ '%'+''
--set @codigo = 'Boaco'
SELECT distinct P.[Codigos],P.[Cuenta], P.[Nombre], P.[CCosto],
(isnull([1],0)+isnull([2],0)+isnull([3],0)+isnull([4],0)+isnull([5],0)+isnull([6],0)+isnull([7],0)+isnull([8],0)+isnull([9],0)+
isnull([10],0)+isnull([11],0)+isnull([12],0)) 'Acumulado' ,
[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 distinct T2.AcctCode as Codigos, T2.AcctName as Cuenta, T1.profitcode as Nombre,T4.OcrCode as CCosto, MONTH(T1.RefDate)'Month',
sum(T1.Debit-T1.Credit)as 'Saldo' from OOCR T4,JDT1 T1
inner join OJDT T0 on T0.TransId = T1.TransId
inner join OACT T2 on T1.Account = T2.AcctCode
left join OFPR T3 on T1.FinncPriod = T3.AbsEntry
where T4.OcrCode = 'Boaco' and T0.TransId = T1.TransId and T1.Account = T2.AcctCode
and T1.ProfitCode <> '' and T1.ProfitCode LIKe @BUSCAR
and t3.Code = @Periodo
group by T1.profitcode,T1.ocrcode2,T2.AcctCode, T2.AcctName,T4.OcrCode, MONTH(T1.RefDate))P --,T1.credit,T1.Debit
--order by T2.AcctCode) P
PIVOT (
SUM(Saldo)
FOR [Month] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
) P
ORDER BY P.[Codigos], P.[Cuenta], P.[CCosto]
Saludos y Gracias