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
37
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
Modérateur
Dernière intervention
15 juillet 2011
35
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