Steve Erbach
erbachs at gmail.com
Wed Dec 10 09:40:32 CST 2008
Stuart, Boy! I had no idea there'd be so many ways to do this: my brute force UNION query, David's UDF, Asger's loop with a table variable, and your temporary Numbers tale. Thank you very much. This has been MOST educational. Steve Erbach Neenah, WI On Tue, Dec 9, 2008 at 7:40 PM, Stuart McLachlan <stuart at lexacorp.com.pg> wrote: > Best way for this sort of thing is to use a Numbers or Tally Table. If you don't already have one, > create it on the fly: > > -- Drop temporary Numbers table if it exists > If object_ID('#Numbers') is not null drop table #Numbers > -- Create temporary numbers table with required number of entries > select top 13 identity(Int,1,1) as N > into #Numbers from master.dbo.syscolumns > -- Create list or WeekBeginnings > select DATEADD(day, (N * 7 + 1) - DATEPART(weekday, GETDATE()), > GETDATE()) AS WeekBeginning from #Numbers > -- Drop temporary numbers table > drop table #Numbers > > > On 9 Dec 2008 at 16:56, Steve Erbach wrote: > >> Dear Group, >> >> In an ASP.NET application I'm writing for work, I'd like to create a >> work scheduling web form. One section contains a check box list of all >> employees, another is a radio button list of the different possible >> shifts to choose from, and a third is a checkbox list of "week >> beginning" dates. The Supervisor checks off all the employees for a >> particular shift, selects the shift, and then selects the weeks that >> those shifts apply. >> >> Anyway, I want to display 13 weeks of "week beginning dates like so: >> >> _ 12/14/2008 >> _ 12/21/2008 >> _ 12/28/2008 >> _ 1/4/2009 >> etc.