Tabella pivot sql

di nico70 il
4 risposte
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

  • 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

  • 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
  • Grz mille
Devi accedere o registrarti per scrivere nel forum
4 risposte