SQL output med variabelt antal kolonner
Jeg synes ikke jeg kan finde nogen let og god måde at, få lavet et data udtræk til en statestik jeg skal lave.Jeg har en database over f.eks. nogle fodbold resultater. Der er nogle hold i en tabel. Disse hold har f.eks. et trøjemærke.. Nike, Hummel osv...
Jeg har hold af mange forskellige nationaliteter.
Nu skal jeg for hvert land, vise hvor mange % af kampene de forskellige trøjemærker vinder. Så mit output skal se ud noget lignende dette:
Land|Hummel|Nike|
DK__|___90%|_30%|
UK__|___80%|_10%|
Antallet af trøjemærker kan variere, så på en eller anden måde skal jeg dynamisk oprette min statestik tabel ud fra hvor mange trøjemærker der findes i trøje tabellen.
Den eneste løsning jeg lige selv kan se, er at jeg opretter en cursor, og render alle rækkerne i trøjetabellen igennem. Ud fra det sammensætter jeg en streng med SQL kode til at oprette/modificere kolonner i en permanent oprettet statestik tabel. Denne streng afvikler jeg med EXEC(@TableString).
Men jeg gad godt at jeg bare kunne gøre det med en table variabel, i stedet for at have en fast tabel i databasen som hele tiden ændre struktur.
En anden løsning jeg selv ser er at trække min data over i .NET og manipulere DataSet's der, hvilket ville være nemt. Men jeg ville gerne have det på SQL serveren, så andre systemer kan trække statestikkerne uden at skulle implmentere en masse logik.
Sig til hvis der er noget jeg skal uddybe :)