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
Grabbing some word using regular expressions
How do I set up VB.Net to use libcurl?
Microsoft Office 2007 Clip art disappeared
Cannot access Windows 2008 DFS links from Windows 2003
contact script
Visual Studio 2005 not working on Windows 7
Understanding Analog Telephone Adaptors
McAfee Groupshield 7.1 - Whitelisting
Using Message Header decoration in operation contract of WCF
activesync error 0x85010004