Si vous pensez en termes de bouclage, vous vous trompez de chemin. Vous devez penser en termes de logique basée sur les ensembles. Ce que vous devez faire est de vous débarrasser complètement de la variable @weeknumber et de simplement regrouper vos données différemment. Vous souhaitez regrouper par semaines, vous devez donc calculer le numéro de la semaine. Vous pouvez le faire en utilisant DATEDIFF() et DATEPART(dw,...) :
declare @StartDate date
declare @EndDate date
declare @WeekNumber int
set @StartDate = '01/06/2014'
set @EndDate = '07/06/2015'
--set @WeekNumber = 01
select datediff(ww,@startdate,[WeekStartDate])+1 [WeekNumber]
,[WeekStartDate]
,dateadd(dd,6,[WeekStartDate]) [WeekEndDate]
,*
From (Select t1.LeadSource
,count(t1.prospectid) [Leads]
,sum(t1.Found) [Apps]
,dateadd(dd,2-datepart(dw,t1.CreateDate),t1.CreateDate) WeekStartDate
from Table T1
where t1.CreateDate between @startDate
and @enddate
GROUP BY f.LeadSource ) f