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
Before unload
How to connect to Oracle 11g as "SYS" from PB
COUNT_variable Error
exchange 2003 and ISA 2006 certificate renew - RPC-HTTPS not working
Windows Authentication with User and Roles management in SQL Server
Revert to Visual Studio 2008
Sonicwall rule to block DHCP traffic between two site-to-site
RADIUS with other IPSEC tunnels
Incomplete result for DNS queries
Dreamweaver deployment view questions.