IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Reqête avec un champ résultat indiquant l'existance d'une vale dans une autre table..


Sujet :

Langage SQL

  1. #1
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    761
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 761
    Points : 2 097
    Points
    2 097
    Par défaut Reqête avec un champ résultat indiquant l'existance d'une vale dans une autre table..
    Bonjour à tous,

    j'ai 2 tables : A et B (SQL standard).

    Table A : Colonne A1, colonne A2.

    Table B : Colonne B2, B3, B4.

    Je fais un select * sur la table A, ca c'est bon .

    Mais j'ai maintenant besoin de rajouter un champ à la réponse de ce select, m'indiquant si la valeur du champ A2 est présente au moins une fois dans la colonne B2 de la table B. (1 ou 0 par ex.).

    Est-ce possible avec une seule requête? En jointures je ne vois pas comment faire... Avec un COUNT peut-être?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 126
    Points : 28 535
    Points
    28 535
    Par défaut
    Avec un count et une jointure externe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select    A.A1
        ,    A.A2
        ,    case    count(B.*)
                when    0    then 'absent'
                else    'présent'
            end
    from    A
        left outer join
            B
            on    A.A2 = B.B2
    group by    
            A.A1
        ,    B.B2

  3. #3
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    761
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 761
    Points : 2 097
    Points
    2 097
    Par défaut
    Merci.

    Entre-temps j'ai trouvé une solution aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select (SELECT COUNT(*) from B.B2 where B.B2=A.A2) as ACTIF, A.* from A

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/07/2014, 17h46
  2. Left join avec une condition dans l'autre table
    Par rj450 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 22/02/2013, 17h50
  3. Résultat d'un champ d'une requête dans une variable
    Par PsychedeChed dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/01/2009, 13h50
  4. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 15h51
  5. écrire le résultat d'une macro dans une cellule d'une feuille à choisir
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2008, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo