Pivot con colonne generate dinamicamente

di il
4 risposte

Pivot con colonne generate dinamicamente

Ciao a tutti,

per uno sviluppo interno ho generato una query con pivot. Nel tentativo di generare dinamicamente le colonne ho creato una stored procedure dedicata che mi estrapola dalla tabella i valori che devono diventare colonne. Il problema è che quando provo ad eseguire la query SQL Server segnala l'errore

Sintassi non corretta in prossimità della parola chiave 'EXEC'

Questa è la parte di query dove riscontro l'errore

PIVOT (
                    MAX(immagineSmaltimento) FOR descrizioneSmaltimento IN
                    (EXEC materiali)
                    ) AS PivotTable

se eseguo la stored pocedure ottengo i valori regolarmente.

C'è un modo per far eseguire la mia stored procedure o in alternativa c'è un modo migliore per ottenere il risultato?

4 Risposte

  • Re: Pivot con colonne generate dinamicamente

    Salve,

    non puoi usare la chiamata ad un “EXEC” innestata in una proiezione….

    personalmente ti consiglio di vedere soluzioni collaudate come quella del grandissimo Itzik Ben Gan, amico, genio matematico e eccezionale SQL coder, oltre che trainer e troubleshooter internazionale… vedi ad esempio https://www.itprotoday.com/sql-server/pivot-steroids

    i suoi libri sono sempre fonte di spunti eccellenti….

    salutoni romagnoli
    – 
    Andrea

  • Re: Pivot con colonne generate dinamicamente

    Grazie per la risposta. Io sto utilizzando SQL Server 2019 ma non ho la stored procedure sp_pivot citata nell'articolo che mi hai linkato.

  • Re: Pivot con colonne generate dinamicamente

    31/10/2023 - VashTheStampede2023 ha scritto:


    Grazie per la risposta. Io sto utilizzando SQL Server 2019 ma non ho la stored procedure sp_pivot citata nell'articolo che mi hai linkato.

    L'articolo va letto dall'inizio. Primo paragrafo dopo l'introduzione:

    «The sp_pivot stored procedure delivers powerful, dynamic pivoting logic. Run the code in Listing 1, to create sp_pivot in the master database.»

    Unico problema: il link che porta al “Listing 1” non funziona più.

  • Re: Pivot con colonne generate dinamicamente

    Salve a tutti…

    eh…. sono articoli un po' datati e pare che SQL Server Magazine non ci sia neanche piu'??  :(((

    comunque anche il grande Erland (Sommarskog), altro personaggissimo di spicco e punta di diamante SQL Server ha giocato con le idee di Itzikk, e il suo lavoro e' ancora disponibile… https://www.sommarskog.se/dynamic_sql.html

    e c'e' anche tutto il bonus del suo documento sul “curse & blessing” del dynamic sql…

    salutoni romagnoli
    – 
    Andrea

Devi accedere o registrarti per scrivere nel forum
4 risposte