CASE WHEN avec opérateur IN [Résolu]

Signaler
Messages postés
173
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
15 décembre 2010
-
Messages postés
173
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
15 décembre 2010
-
salut

j'ai un peu de peine à écrire une requete sql avec un case when dans une clause where...

SELECT max(ResultsID) FROM panorama..PortfolioResults WHERE ReferenceDate =@vRefDate AND
PortfolioID IN
(CASE WHEN @vPortfolioID='DEVISES' THEN
('LODTERM','DEVSPOT','DEVBLTS')
WHEN @vPortfolioID='OBLIG' THEN
('PRIMOBLI','LOTXDER')
END)

GROUP BY PortfolioID


Voilà la requete vers quoi j'aimerais tendre mais il n'aime pas trop ce code.

il me dit " Incorrect syntax near ','."

est-ce que qqn peut m'aider un peu? je suis sur Sybase 12.5



Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F

2 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
Salut,

Je ne connais pas Sybase mais comme sqlserver est un cousin

Je dirais que transformer ton case dans le in en une sous requete (SELECT CASE ....) peut debloquer la situation.

bon dev
Messages postés
173
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
15 décembre 2010
1
J'avais pas pensé à ça...

ça marche bien..

Merci pour le conseil



Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F