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

Résolu
titi0006 Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   -  
titi0006 Messages postés 156 Date d'inscription   Statut Membre Dernière intervention   -
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 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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 156 Date d'inscription   Statut Membre Dernière intervention  
 
Merci sa fonctionne
0