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

Messages postés
175
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
15 décembre 2010
- - Dernière réponse : bossun
Messages postés
175
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
175
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
15 décembre 2010
1
0
Merci
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
Commenter la réponse de bossun