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

Résolu
titi0006 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
titi0006 Messages postés 6 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

  1. jee pee Messages postés 9445 Date d'inscription   Statut Modérateur Dernière intervention   9 984
     
    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
    1. titi0006 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci sa fonctionne
      0