I'm not sure how you get 3 for the day of week for 2009-5-5 if the week starts on Saturday; it's a Tuesday, so wouldn't the day of week number be 4? Assuming the day of week is numbered from 1 to 7, not 0 to 6.This code shows how to get the day of week number for any day of the week that you want to start with.select [DATE] = convert(varchar(10),a.DATE,121), Day_Num_Start_Sat = datediff(dd,-53685,a.DATE)%7+1, Day_Num_Start_Sun = datediff(dd,-53684,a.DATE)%7+1, Day_Num_Start_Mon = datediff(dd,-53690,a.DATE)%7+1, Day_Num_Start_Tue = datediff(dd,-53689,a.DATE)%7+1, Day_Num_Start_Wed = datediff(dd,-53688,a.DATE)%7+1, Day_Num_Start_Thu = datediff(dd,-53687,a.DATE)%7+1, Day_Num_Start_Fri = datediff(dd,-53686,a.DATE)%7+1from ( -- Test Data select DATE = convert(datetime,'20090502') union all select DATE = convert(datetime,'20090503') union all select DATE = convert(datetime,'20090504') union all select DATE = convert(datetime,'20090505') union all select DATE = convert(datetime,'20090506') union all select DATE = convert(datetime,'20090507') union all select DATE = convert(datetime,'20090508') union all select DATE = convert(datetime,'20090509') ) a
Results:DATE Day_Num_Start_Sat Day_Num_Start_Sun Day_Num_Start_Mon Day_Num_Start_Tue Day_Num_Start_Wed Day_Num_Start_Thu Day_Num_Start_Fri ---------- ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- 2009-05-02 1 7 6 5 4 3 22009-05-03 2 1 7 6 5 4 32009-05-04 3 2 1 7 6 5 42009-05-05 4 3 2 1 7 6 52009-05-06 5 4 3 2 1 7 62009-05-07 6 5 4 3 2 1 72009-05-08 7 6 5 4 3 2 12009-05-09 1 7 6 5 4 3 2(8 row(s) affected)
CODO ERGO SUM