

SSCEnthusiastic
Group: General Forum Members
Last Login: Friday, November 13, 2015 8:19 AM
Points: 115,
Visits: 581


our company is in the clothing hire business. Ive just started with them and they have no reporting to speak off
Most of thier hire orders fall on Friday and Saturday as thats when the majority of the functions tend to be. they are keen to accurately compare hires for coming months with previous months, the problem they have always faced in doing this is some months have more weekend hire days than others
ie. march 2013 5xfriday & 5xSaturday march 2014 4xfriday & 5xSaturday
is there any clean way to actually do this comparison, or is this only possible if you break the year down into 4 week months starting from the first weekend of the year?
thanks




SSCDedicated
Group: General Forum Members
Last Login: Yesterday @ 3:52 PM
Points: 38,966,
Visits: 36,051


Divide all totals by the number of days (Fridays, for example) contained in a given month and then multiply by 5. Think of it as a normalized total.
Jeff Moden "RBAR is pronounced "reebar" and is a "Modenism" for "RowByAgonizingRow".
First step towards the paradigm shift of writing Set Based code: Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."
(play on words) "Just because you CAN do something in TSQL, doesn't mean you SHOULDN'T." 22 Aug 2013
Favorite Quotes: "Has anyone ever told you that a query you have written runs too fast?"  Dwain Camps  6 Mar 2014
Helpful Links: How to post code problems How to post performance problems




SSCEnthusiastic
Group: General Forum Members
Last Login: Friday, November 13, 2015 8:19 AM
Points: 115,
Visits: 581


Jeff Moden (2/5/2014) Divide all totals by the number of days (Fridays, for example) contained in a given month and then multiply by 5. Think of it as a normalized total.
thanks for the reply, hmm not quite following you :( brain is prob sleeping now.
for talking sake say i was comparing order value.
march 2013 my order value was $1000 march 2014 my order values is also $1000
but 2013 had one more friday so although the two months look as though they performed the same, 2014 was better as it had fewer days to work with.
sorry if im being dumb lol




SSCDedicated
Group: General Forum Members
Last Login: Yesterday @ 3:52 PM
Points: 38,966,
Visits: 36,051


ps_vbdev (2/5/2014)
Jeff Moden (2/5/2014) Divide all totals by the number of days (Fridays, for example) contained in a given month and then multiply by 5. Think of it as a normalized total.thanks for the reply, hmm not quite following you :( brain is prob sleeping now. for talking sake say i was comparing order value. march 2013 my order value was $1000 march 2014 my order values is also $1000 but 2013 had one more friday so although the two months look as though they performed the same, 2014 was better as it had fewer days to work with. sorry if im being dumb lol
As you say, 2013 had 5 Fridays and 2014 had 4 Fridays. That means that if both months has $1000, 2013 actually did worse than 2014. Let's see that work according to the math I spoke of.
SELECT Mar2013 = 1000/5*5 1000 / number or Fridays in month * 5 ,Mar2014 = 1000/4*5 1000 / number or Fridays in month * 5 ;
Results:
Mar2013 Mar2014   1000 1250
Think of the numbers above as the "Normalized Sales for the Month". If there had been 5 Fridays in 2014, it's likely it would have had 1250 for the month.
The numbers aren't "real" but do indicate, relatively speaking which month did better by taking the number of weeks into consideration. The "5" in both forumlas could be any constant but either 1 or 5 seem to be the easiest to understand. "5" is used to "normalize" all months to a 5 week period. If you use "1" instead, then you end up with the average performance by week for the month. For example...
SELECT Mar2013 = 1000/5 1000 / number or Fridays in month (Times 1 is implied) ,Mar2014 = 1000/4 1000 / number or Fridays in month (Times 1 is implied) ;
Results:
Mar2013 Mar2014   200 250
Think of the numbers above as the "Average Friday Sales per Week for the Month".
Jeff Moden "RBAR is pronounced "reebar" and is a "Modenism" for "RowByAgonizingRow".
First step towards the paradigm shift of writing Set Based code: Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."
(play on words) "Just because you CAN do something in TSQL, doesn't mean you SHOULDN'T." 22 Aug 2013
Favorite Quotes: "Has anyone ever told you that a query you have written runs too fast?"  Dwain Camps  6 Mar 2014
Helpful Links: How to post code problems How to post performance problems




SSCEnthusiastic
Group: General Forum Members
Last Login: Friday, November 13, 2015 8:19 AM
Points: 115,
Visits: 581


"The "5" in both forumlas could be any constant but either 1 or 5 seem to be the easiest to understand"
so the 5 is an arbitrary value that is commonly used for the normalization calculation or is it based on the max number of Fridays a month COULD have.
Thanks Jeff for your time, excellent explanation.




SSCDedicated
Group: General Forum Members
Last Login: Yesterday @ 3:52 PM
Points: 38,966,
Visits: 36,051


ps_vbdev (2/6/2014) "The "5" in both forumlas could be any constant but either 1 or 5 seem to be the easiest to understand"
so the 5 is an arbitrary value that is commonly used for the normalization calculation or is it based on the max number of Fridays a month COULD have.
Thanks Jeff for your time, excellent explanation.
Sorry for the delayed response. I picked the number "5" because it's the maximum number of Fridays that any month could have.
Jeff Moden "RBAR is pronounced "reebar" and is a "Modenism" for "RowByAgonizingRow".
First step towards the paradigm shift of writing Set Based code: Stop thinking about what you want to do to a row... think, instead, of what you want to do to a column."
(play on words) "Just because you CAN do something in TSQL, doesn't mean you SHOULDN'T." 22 Aug 2013
Favorite Quotes: "Has anyone ever told you that a query you have written runs too fast?"  Dwain Camps  6 Mar 2014
Helpful Links: How to post code problems How to post performance problems



