Tabella pivot sql

di il
4 risposte

Tabella pivot sql

Buonasera
neofita in sql server ho una tabella clienti:
cliente prest Invio
cliente1 3 202012
cliente2 2 202011
cliente3 2 202011
cliente4 2 202010
cliente5 2 202001
cliente6 4 202011

non riesco a costruire una vista pivot in modo da ottenere questo risultato:

cliente 202001 202010 202011 202012
cliente1 3
cliente2 2
cliente3 2
cliente4 2
cliente5 2
cliente6 4

si può ricavare anche un totale per riga ?
ringrazio anticipatamente

4 Risposte

  • Re: Tabella pivot sql

    Ecco cosa cerco di ottenere
    dalla tabella clienti
    grz e scusate del post precedente, non ho tenuto conto che la formattazione del testo rendesse poco comprensibile l aiuto che cerco

  • Re: Tabella pivot sql

    Buondì

    Hai provato a vedere il comando PIVOT?
    Qui trovi la documentazione Microsoft:
    https://docs.microsoft.com/it-it/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-ver15
  • Re: Tabella pivot sql

    Ciao,
    il PIVOT nel tuo caso sarà qualcosa di questo tipo:
    SELECT
    	cliente,[202012],[202011] /*, ......*/
    FROM 
    	dbo.Clienti
    PIVOT  
    (  
      SUM(Prest)  
      FOR AnnoMese IN ([202012],[202011] /*, .....*/)  
    ) AS PivotTable;
    Un paio di dritte per capire la query:
    * ciò che specifichi tra quadre (nella select e nella clausola FOR) sono i reali valori che hai all'interno delle righe in corrispondenza della colonna AnnoMese, più valori metti, più colonne rappresenti e più valori pivotterai
    * all'interno di PIVOT puoi specificare una funzione di AGGREGAZIONE, io ho usato SUM per ottenere la somma dei valori di "prest" in caso un cliente avesse più volte un valore di "prest" per lo stesso "AnnoMese"; tu chiaramente puoi decidere di specificare MIN, MAX, AVG, ....ecc
  • Re: Tabella pivot sql

    Grz mille
Devi accedere o registrarti per scrivere nel forum
4 risposte