Det, du leder efter, kaldes almindeligvis en krydstabuleringsforespørgsel. Hvis det, du spørger, er, hvordan man opbygger en krydstabulatorforespørgsel givet en statisk liste over kolonner, kan du gøre sådan noget:
Select Title
, Min( Case When DatePart(mm, [Date]) = 7 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Jul-10]
, Min( Case When DatePart(mm, [Date]) = 8 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Aug-10]
, Min( Case When DatePart(mm, [Date]) = 9 And DatePart(yy, [Date]) = 2010 Then MetaData End ) As [Sep-10]
...
From Table
Where [Date] Between @StartDate And @EndDate
Group By Title
På samme måde kan du bruge PIVOT-funktionaliteten som foreslået af Broken Link. Men både ovenstående løsning og PIVOT-funktionaliteten er afhængig af statisk kolonneerklæringer. Hvis det, du ønsker, er en dynamisk liste over kolonner (også kaldet dynamisk krydstabel), så er du uden for grænserne af, hvad T-SQL primært er designet til at gøre. Det er muligt med noget fjollet dynamisk SQL, men det er skørt og besværligt. I stedet bør du opbygge resultatsættet i en mellemtrinskomponent eller bruge et rapporteringsværktøj, der opbygger krydstabelresultater.