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

bossun 175 Messages postés lundi 3 mars 2003Date d'inscription 15 décembre 2010 Dernière intervention - 18 déc. 2009 à 16:46 - Dernière réponse : bossun 175 Messages postés lundi 3 mars 2003Date d'inscription 15 décembre 2010 Dernière intervention
- 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

Répondre au sujet
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 déc. 2009 à 19:28
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
bossun 175 Messages postés lundi 3 mars 2003Date d'inscription 15 décembre 2010 Dernière intervention - 21 déc. 2009 à 09:40
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.