0
Ich habe beide Ansätze ausprobiert. Der erste hat einen Syntaxfehler. Der Zweite verschiebt jede Spalte im Ergebnis und nicht nur die, die mit @LabelID übereinstimmt.Spaltenname bestimmt durch Parameter
SELECT (SELECT CASE @LabelID
WHEN 1 THEN count(h.ee_cmn_idfr) as 'DIR'
WHEN 2 THEN count(h.ee_cmn_idfr) as 'DD'
WHEN 3 THEN count(h.ee_cmn_idfr) as 'OD_Staff'
WHEN 4 THEN count(h.ee_cmn_idfr) as 'DI_BC'
WHEN 5 THEN count(h.ee_cmn_idfr) as 'DI_PLs'
WHEN 6 THEN count(h.ee_cmn_idfr) as 'DI_PQAs'
WHEN 7 THEN count(h.ee_cmn_idfr) as 'DI_FTEs'
WHEN 8 THEN count(h.ee_cmn_idfr) as 'AIPQBBC'
WHEN 9 THEN count(h.ee_cmn_idfr) as 'AIPQB_PL'
WHEN 10 THEN count(h.ee_cmn_idfr) as 'AIPQB_PQA'
WHEN 11 THEN count(h.ee_cmn_idfr) as 'AIPQB_GS13S'
WHEN 12 THEN count(h.ee_cmn_idfr) as 'AIPQB_FTE'
WHEN 13 THEN count(h.ee_cmn_idfr) as 'IT_Staff'
WHEN 14 THEN count(h.ee_cmn_idfr) as 'IT_Sup'
)
zweiter Ansatz:
SELECT
CASE WHEN @LabelID = 1 THEN count(h.ee_cmn_idfr) as 'DIR'
,CASE WHEN @LabelID = 2 THEN count(h.ee_cmn_idfr) END as 'DD'
,CASE WHEN @LabelID = 3 THEN count(h.ee_cmn_idfr) END as 'OD_Staff'
,CASE WHEN @LabelID = 4 THEN count(h.ee_cmn_idfr) END as 'DI_BC'
,CASE WHEN @LabelID = 5 THEN count(h.ee_cmn_idfr) END as 'DI_PLs'
,CASE WHEN @LabelID = 6 THEN count(h.ee_cmn_idfr) END as 'DI_PQAs'
,CASE WHEN @LabelID = 7 THEN count(h.ee_cmn_idfr) END as 'DI_FTEs'
,CASE WHEN @LabelID = 8 THEN count(h.ee_cmn_idfr) END as 'AIPQBBC'
,CASE WHEN @LabelID = 9 THEN count(h.ee_cmn_idfr) END as 'AIPQB_PL'
,CASE WHEN @LabelID = 10 THEN count(h.ee_cmn_idfr) END as 'AIPQB_PQA'
,CASE WHEN @LabelID = 11 THEN count(h.ee_cmn_idfr) END as 'AIPQB_GS13S'
,CASE WHEN @LabelID = 12 THEN count(h.ee_cmn_idfr) END as 'AIPQB_FTE'
,CASE WHEN @LabelID = 13 THEN count(h.ee_cmn_idfr) END as 'IT_Staff'
,CASE WHEN @LabelID = 14 THEN count(h.ee_cmn_idfr) END as 'IT_Sup'
Können Sie zeigen, was der Eingang ist und was die erwartete Ausgabe? –
Die erste wäre ein Syntaxfehler, weil die Syntax Ihrer CASE-Anweisung falsch ist. –