entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Pivot Dinamico SQL Server

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

`

0voto

bl4z3r comentado

¿Que versión de SQL Server utilizas?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta