Microsoft
Software
Hardware
Network
Question : How I can simplify a series of nested case statements in a MS SQL 2005 query
Hello,
I'm working on an average debt oustanding query and I have my debt principal balances split into months (columns) and debt type (rows). See below a section of my code used to calculate a June year-to-date average outstanding balance. If the debt has been open for the entire period then a simple average is used in my formula. However if the debt is incurred sometime in the middle of the period I need to adjust the denominator in my formula to be the number of periods open. I'm trying to avoid a series of nested CASE statements as I have to do the calculation for each of the twelve months. Any Ideas?
See my image attachment below. The first line should be divided by 2 instead of 6 as the debt was only open for two months at the time of the report.
select
Category
Beg_bal,
Jan_bal,
Feb_bal,
Mar_bal,
Apr_bal,
May_bal,
(Beg_bal + Jan_bal + Feb_bal + Mar_bal + Apr_bal + May_bal) / 6 as ytd_Jun_avg,
from #working
Thanks!
David
average-example.JPG
(28 KB)
(File Type Details)
average example
Answer : How I can simplify a series of nested case statements in a MS SQL 2005 query
use sign function
(Beg_bal + Jan_bal + Feb_bal + Mar_bal + Apr_bal + May_bal)
/ (sign(Beg_bal) + sign(Jan_bal) + sign(Feb_bal) + sign(Mar_bal) + sign(Apr_bal) + sign(May_bal))
as ytd_Jun_avg,
Random Solutions
CSS
hp msl 2024 attaching p212 on FreeBSD 8 p3
Publishing Applications - Windows Server 2008
Exchange 2007 has stopped working
login script copy a shortcut to everybody's desktop
modify public folders permissions on SBS 2008
Operator '=' is not defined for type 'DBNull' and type 'Integer' - how to fix
anchor on seperate page not working in safari and firefox
detect startmenu sortcuts who's target no longer exists
Any way of showing a list of the users that logged on to a Windows XP SP3