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 37803 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 juin 2023 8 947
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