यदि आप लूपिंग के संदर्भ में सोच रहे हैं, तो आप गलत रास्ते पर जा रहे हैं। आपको सेट-आधारित तर्क के संदर्भ में सोचने की जरूरत है। आपको क्या करना है @weeknumber चर से पूरी तरह छुटकारा पाना है, और बस अपने डेटा को अलग तरीके से समूहित करना है। आप सप्ताह के आधार पर समूह बनाना चाहते हैं, इसलिए आपको सप्ताह की संख्या की गणना करने की आवश्यकता है। आप इसे DATEDIFF() और 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