Procédure stockées et généralisation spécialisations

Résolu/Fermé
titi0006
Messages postés
157
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
15 mars 2017
- 16 nov. 2013 à 14:50
titi0006
Messages postés
157
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
15 mars 2017
- 16 nov. 2013 à 17:23
Bonjour,



Je souhaite réaliser une procédure stockée pour afficher un client selon l'id saisie.
Je souhaite affiché son nom et son id. Pas de problème
Maintenant, je complique la chose: le client peut être entreprise ou particulier. Selon le type, il est aussi insérer dans l'une des autres tables avec son id et d'autres info. J'ai dont 3 tables: Client, Partenaire, Entreprise.
Je souhaite donc afficher le type du Client: Entreprise Ou Partenaire dans une nouvelle colonne.
Le problème c'est que la colonne n'est pas dans la table Client. J'ai faire un exists et un case mais cela ne fonctionne pas. Sa me dit que tout mes clients sont dans Entreprise alors que j'en ai dans Partenaire. Voici la requête:

SELECT id, nom,case when id IN (SELECT 1 FROM Particulier JOIN Client ON Client.id = Particulier.idClient WHERE idClient=id) then 'P' else 'E' end  AS typeClient

FROM Client
Merci de votre aide

1 réponse

jee pee
Messages postés
34931
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
19 mai 2022
8 616
Modifié par jee pee le 16/11/2013 à 17:17
Salut,

je mettrais à la place de
select 1
un
select idclient 


généralement le
select 1
est combiné non pas avec un
id in
mais avec
exists


et pourquoi une jointure ?
select idClient from Particulier WHERE idClient=id
devrait suffire.

cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
titi0006
Messages postés
157
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
15 mars 2017

16 nov. 2013 à 17:23
Merci sa fonctionne
0