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

Résolu
titi0006 Messages postés 184 Statut Membre -  
titi0006 Messages postés 184 Statut Membre -
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 42371 Statut Modérateur 9 737
 
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 184 Statut Membre
 
Merci sa fonctionne
0