У меня есть sproc, который в основном:SQL run Variable +1 до тех пор, пока переменная не достигнет 52?
declare @StartDate date
declare @EndDate date
declare @WeekNumber int
set @StartDate = '01/06/2014'
set @EndDate = '07/06/2015'
set @WeekNumber = 01
select @WeekNumber [WeekNumber]
,dateadd(ww,(@WeekNumber-1),@startDate) [WeekStartDate]
,dateadd(dd,6,dateadd(ww,(@WeekNumber-1),@startDate)) [WeekEndDate]
,*
From (Select t1.LeadSource
,count(t1.prospectid) [Leads]
,sum(t1.Found) [Apps]
from Table T1
where t1.CreateDate between dateadd(ww,(@WeekNumber-1),@startDate)
and cast(convert(varchar(10),dateadd(dd,6,dateadd(ww,(@WeekNumber-1),@startDate)),101) as datetime)) f
GROUP BY f.LeadSource
Это будет, как это выглядит, когда он возвращается
WeekNumber WeekStartDate WeekEndDate Leads Apps
1 2014-01-06 2014-01-12 30 3
мне нужно запустить это в течение последних 2-х лет, с ним на велосипеде через каждую неделю и возвращать его по номеру недели, если это имеет смысл.
Есть ли способ прокрутить переменную @WeekNumber Variable и остановить ее, когда она достигнет 52 недель или даже 104?
Спасибо за ваше время.
Обычный способ для этого типа - перекрестное соединение с таблицей вспомогательных номеров или таблицей таллинга. –
Видел это до конца ... Я просто добавил ответ с предложением создать таблицу чисел «на лету» ... – Shnugo