Buen Día
Necesito saber como puedo realizar un Pivot Dinamico que me saque los componentes de Valor, estoy realizando este Query pero no tengo mucho conocimiento del mismo, me sales el siguiente error
The parameterized query '(@ComponenteCapital varchar , @ComponenteInteres varchar , @Comp' expects the parameter '@ComponenteCapital', which was not supplied.
Si me pueden sugerir hacerlo de otra forma agradezco ya que todos los NumeroDoc no tiene la misma cantidad de Componentes, Este Query me guie por un tuto de Youtube pero no me quedo claro....
SET @CATID = (SELECT MIN (ComponenteCarteraID) from ccCarteraComponente)
SET @CATEGORIAS = (SELECT Descriptivo FROM ccCarteraComponente WHERE ComponenteCarteraID = @CATID )
SET @CATPVT = N''
WHILE @CATEGORIAS IS NOT NULL
BEGIN
SET @CATPVT = @CATPVT + ',[' + @CATEGORIAS + ']'
SET @CATEGORIAS = (SELECT TOP (1) Descriptivo FROM ccCarteraComponente WHERE ComponenteCarteraID > @CATEGORIAS)
SET @CATID = (SELECT MIN (ComponenteCarteraID) FROM ccCarteraComponente WHERE Descriptivo = @CATEGORIAS)
END
SET @CATPVT = SUBSTRING (@CATPVT,2,LEN(@CATPVT))
DECLARE @SQL NVARCHAR (MAX)
SET @SQL = N'SELECT * FROM (SELECT CrComp.Descriptivo,
crcomp.ComponenteCarteraID,
CrPP.NumeroDoc,
CrCmp.CuotaValor,
CrPP.FechaCuota,
CrPP.VlrCapital,
CrPP.VlrInteres,
CrPP.VlrSeguro,
CrPP.VlrOtrosfijos
FROM ccCreditoPlanPagos AS CrPP
inner join ccCreditoComponentes AS CrCmp on CrPP.NumeroDoc = CrCmp.NumeroDoc
inner join ccCreditoDocu AS credDoc on credDoc.NumeroDoc = CrCmp.NumeroDoc
inner join ccCarteraComponente as CrComp on CrComp.ComponenteCarteraID = CrCmp.ComponenteCarteraID
WHERE CrCmp.ComponenteCarteraID <> @ComponenteCapital
PIVOT (SUM(VlrOtrosfijos) FOR ComponenteCarteraID IN ('+@CATPVT+')) AS CHILD '
EXEC SP_EXECUTESQL @SQL,
N'@ComponenteCapital varchar , @ComponenteInteres varchar , @ComponenteSeguro varchar'
-- Pendiente por declarar las variables de esta ejecucion
`