September 25, 2013 at 7:57 am
I have the following code which seems to accumulate the complete file - rather than the upper record set -
When OperationPhase = 2 and ResCat = 'MC' - I want to sum it.
SUM( CASE OperationPhase WHEN 2 THEN
(CASE ResCat when 'MC' then ResAllocTime else 0 end ) else 0 end ) as TotalSetUpMC,
SUM( CASE OperationPhase WHEN 3 THEN
(CASE ResCat when 'MC' then ResAllocTime else 0 end ) else 0 end ) as TotalRunMC,
SUM( CASE OperationPhase WHEN 2 THEN
(CASE ResCat when 'PERS' then ResAllocTime else 0 end ) else 0 end ) as TotalSetUpPERS,
SUM( CASE OperationPhase WHEN 3 THEN
(CASE ResCat when 'PERS' then ResAllocTime else 0 end ) else 0 end ) as TotalRunPERS,
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
September 25, 2013 at 8:22 am
SteveEClarke (9/25/2013)
I have the following code which seems to accumulate the complete file - rather than the upper record set -When OperationPhase = 2 and ResCat = 'MC' - I want to sum it.
SUM( CASE OperationPhase WHEN 2 THEN
(CASE ResCat when 'MC' then ResAllocTime else 0 end ) else 0 end ) as TotalSetUpMC,
SUM( CASE OperationPhase WHEN 3 THEN
(CASE ResCat when 'MC' then ResAllocTime else 0 end ) else 0 end ) as TotalRunMC,
SUM( CASE OperationPhase WHEN 2 THEN
(CASE ResCat when 'PERS' then ResAllocTime else 0 end ) else 0 end ) as TotalSetUpPERS,
SUM( CASE OperationPhase WHEN 3 THEN
(CASE ResCat when 'PERS' then ResAllocTime else 0 end ) else 0 end ) as TotalRunPERS,
Need a little more detail here. What does upper record set mean? What exactly are you trying to do?
_______________________________________________________________
Need help? Help us help you.
Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.
Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.
Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/
September 25, 2013 at 8:37 am
Sorry -
What I am trying to achieve is a CASE within a CASE I suppose
Two conditional checks ...
So ...
SUM ( CASE field_SEX WHEN "MALE" THEN
CASE field_PARENTS_ALIVE WHEN "YES" Then 1 ELSE 0 END) ELSE 0 END ) as MaleParents
SUM ( CASE field_SEX WHEN "FEMALE" THEN
CASE field_PARENTS_ALIVE WHEN "YES" Then 1 ELSE 0 END) ELSE 0 END ) as FeMaleParents
Does that make more sense ?
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
September 25, 2013 at 8:42 am
SteveEClarke (9/25/2013)
Sorry -What I am trying to achieve is a CASE within a CASE I suppose
Two conditional checks ...
So ...
SUM ( CASE field_SEX WHEN "MALE" THEN
CASE field_PARENTS_ALIVE WHEN "YES" Then 1 ELSE 0 END) ELSE 0 END ) as MaleParents
SUM ( CASE field_SEX WHEN "FEMALE" THEN
CASE field_PARENTS_ALIVE WHEN "YES" Then 1 ELSE 0 END) ELSE 0 END ) as FeMaleParents
Does that make more sense ?
For two conditions just use AND as your check.
SUM(CASE WHEN field_SEX = 'MALE' AND field_PARENTS_ALIVE = 'YES' Then 1 ELSE 0 END) as MaleParents
SUM(CASE WHEN field_SEX = 'FEMALE' AND field_PARENTS_ALIVE = 'YES' Then 1 ELSE 0 END) as FeMaleParents
_______________________________________________________________
Need help? Help us help you.
Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.
Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.
Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/
September 25, 2013 at 9:17 am
Sorry - that seems to be working as expected -
Thanks -
I think when I tried that I had "CASE fieldname WHEN" rather than "CASE WHEN fieldname"
Regards
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
Viewing 5 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy