CASE WHEN avec opérateur IN

Résolu
bossun Messages postés 173 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 15 décembre 2010 - 18 déc. 2009 à 16:46
bossun Messages postés 173 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 15 décembre 2010 - 21 déc. 2009 à 09:40
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
A voir également:

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 déc. 2009 à 19:28
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
3
Rejoignez-nous