I am trying to generate a report and the following code does not produce the desired results which gives me 2 lines rather than one.
The ScoreTypeID could have values of 22, 52, 3 or 4 . if it is 22 or 52, I need the average and if not I need to show 0. Any idea what may be the problem ? Thanks.
CASE WHEN FAS1.ScoreTypeID = 22 THEN avg(fas1.totalscore)
WHEN FAS1.ScoreTypeID = 52 THEN avg(fas1.totalscore) ELSE 0
END AS 'Total Score',
To keep it in the format you have chosen you could use:
I think this is what you want:
This takes the average when the score is 22 or 52. If there are no values present, it returns NULL. The coalesce turns the NULL into a 0.
I think in your full query, you are missing the
GROUP BY
clause, eg