none
Problema con código a la hora de convertir columna en fila RRS feed

  • Pregunta

  • tengo un problema con el siguiente codigo si alguien me puedar ayudar muchas gracias

    SELECT
    Producto, Color
    INTO
     #T
    from 
    [PRODUCTO COLOR]
    DECLARE @columns nvarchar(MAX);
    DECLARE @sql nvarchar(MAX);

    SET @columns = STUFF(
    (
    SELECT
      ',' + QUOTENAME('Pregunta' + LTRIM(Producto))
    FROM
      (SELECT DISTINCT Producto FROM #T) AS T
    ORDER BY
     Producto
    FOR XML PATH('')
    ), 1, 1, '');

    SET @sql = N'
    SELECT
     *
    FROM
     (
     SELECT
     *
      ''Pregunta'' + LTRIM(Producto) AS Pregunta,
      AlternativaNombre
     FROM
      #T
     ) AS T
     PIVOT
     (
     MAX(Color)
     FOR Pregunta IN (' + @columns + N')
     ) AS P;';

    BEGIN TRY
     EXEC sp_executesql @sql;
    END TRY
    BEGIN CATCH
     SELECT 
      ERROR_NUMBER() AS ErrorNumber,
      ERROR_SEVERITY() AS ErrorSeverity,
      ERROR_STATE() as ErrorState,
      ERROR_LINE () as ErrorLine,
      ERROR_PROCEDURE() as ErrorProcedure,
      ERROR_MESSAGE() as ErrorMessage;
    END CATCH;
    GO

    me genera el siguiente error

     Number                                          

        102     

    ErrorSeverity

    15

    ErrorState

    1

    ErrorLine

    8

    ErrorProcedure

    NULL

    ErrorMessage 

    Sintaxis incorrecta cerca de 'Pregunta'.

    Muchas gracias

    martes, 17 de octubre de 2017 22:38

Respuestas

  • No tengo como probar el código que adjuntas y por lo mismo no se que otros problemas puedas tener, más allá de los evidentes. Vas a tener que proporcionar todo lo necesario para ayudarte a solucionar el problema, por ejemplo el nuevo error que obtienes.

    Si el problema tiene que ver con que no obtienes los resultados que esperas te sugiero que adjuntes la creación de tablas (mediante scripts) y datos de ejemplo para hacer las pruebas.

    miércoles, 18 de octubre de 2017 17:28

Todas las respuestas

  • Cuanto menos lo que falta es la coma, en la subconsulta, luego del comodín *

    SET @sql = N'SELECT * FROM (SELECT *, ''Pregunta'' + ...


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 17 de octubre de 2017 22:43
  • Muchas gracias pero sigue sin funcionar
    miércoles, 18 de octubre de 2017 16:34
  • No tengo como probar el código que adjuntas y por lo mismo no se que otros problemas puedas tener, más allá de los evidentes. Vas a tener que proporcionar todo lo necesario para ayudarte a solucionar el problema, por ejemplo el nuevo error que obtienes.

    Si el problema tiene que ver con que no obtienes los resultados que esperas te sugiero que adjuntes la creación de tablas (mediante scripts) y datos de ejemplo para hacer las pruebas.

    miércoles, 18 de octubre de 2017 17:28