Domanda

La mia struttura della tabella "FeedbackSummary" è

GivenBy varchar(50)
GivenTo varchar(50)
Points  decimal(15, 2)

Dati di esempio

Alice   Janet   4.50
Alice   Bruce   3.50
Bruce   Alice   2.87
Bruce   Janet   4.75
Janet   Alice   5.45
Janet   Bruce   3.78

Quello che sto cercando di realizzare

GivenBy_GivenTo Alice   Bruce   Janet
Alice           NULL    3.50    4.50    
Bruce           2.87    NULL    4.75
Janet           5.45    3.78    NULL

Platform: SQL Server 2005 e 2008

Come questo può essere fatto utilizzando pivot o qualsiasi altra tecnica. Ciò può essere ottenuto utilizzando SQL Reporting Services facilmente?

Grazie in anticipo.

È stato utile?

Soluzione

La cosa migliore è utilizzare SSRS. Mettere una matrice lì, con una colonna sulle righe e uno nelle colonne. Si può ruotare in una query (l'opzione PIVOT), ma che non consente una certa flessibilità nei rapporti.

Rob

Altri suggerimenti

  SELECT t.givenby,
         SUM(CASE WHEN t.givento = 'Alice' THEN t.points ELSE NULL END) 'Alice',
         SUM(CASE WHEN t.givento = 'Bruce' THEN t.points ELSE NULL END) 'Bruce',
         SUM(CASE WHEN t.givento = 'Janet' THEN t.points ELSE NULL END) 'Janet'
    FROM TABLE t
GROUP BY t.givenby
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top