Sous requête dans CASE

citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 - 19 août 2008 à 10:10
citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 - 21 août 2008 à 07:25
Bonjour,


Est il possible de faire des sous requêtes dans le THEN d'un case ?


J'ai des table du genre


produits

- ID

- Nom

- ID_User1

- ID_User2


user1

- ID

- Nom


user2

- ID

- Nom


soit id_user1 ou id_user2 est remplie donc j'ai fait comme requête :


SELECT

CASE

WHEN ID_User1 IS NOT NULL THEN (SELECT Nom FROM user1 WHERE ID=ID_User1)

WHEN ID_User2 IS NOT NULL THEN (SELECT Nom FROM user2 WHERE ID=ID_User2)

END as Nom

FROM produits


Mais il ne veut pas de ma syntaxe, existe t il une autre solution ?

Citt_jr
Bats toi avec les meilleurs, crève avec le reste
A voir également:

5 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
19 août 2008 à 10:39
Salut,

Je ne pense pas que ce soit possible, après c'est a voir, il n'y a rien de sur de ce que je dit...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
19 août 2008 à 10:43
c'est quoi le message d'erreur?
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
19 août 2008 à 14:34
bonjour,
C'est possible.

Dom
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
19 août 2008 à 20:00
Salut

C'est possible TOP 1 est ton ami il te faut qu'un seul enregistrement en sortie de ta sous requete

sinon

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows = , !=, <, <= , >, >= or when the subquery is used as an expression.

SELECT
CASE
WHEN ID_User1 IS NOT NULL THEN (SELECT TOP 1 Nom FROM user1 WHERE ID =ID_User1)
WHEN ID_User2 IS NOT NULL THEN (SELECT  TOP 1 Nom FROM user2 WHERE ID=ID_User2)
END as Nom
FROM produits
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 3
21 août 2008 à 07:25
ma requête de départ me retourner deux champs c'est pour cela qu'elle ne fonctionner pas, elle ressemble a c'elle de [auteur/NHERVAGAULT/84425.aspx nhervagault]

Merci encore

Citt_jr
Bats toi avec les meilleurs, crève avec le reste
0
Rejoignez-nous