Това, което търсите, обикновено се нарича кръстосана заявка. Ако това, което питате, е как да създадете кръстосана заявка, дадена статична списък от колони, можете да направите нещо подобно:
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
По същия начин можете да използвате функционалността PIVOT, както е предложено от Broken Link. Въпреки това както горното решение, така и функционалността PIVOT разчитат на статични декларации на колони. Ако това, което искате, е динамичен списък от колони (известен още като динамична кръстосана таблица), тогава сте извън границите на това, което T-SQL е предназначен да прави основно. Възможно е с някакъв глупав динамичен SQL, но е крехък и тромав. Вместо това трябва да изградите набора от резултати в компонент от средно ниво или да използвате инструмент за отчитане, който ще изгради кръстосани резултати.