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

Développement SQL Server Discussion :

Clause Except. Extraire un champs, possible ou non ?


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 42
    Points
    42
    Par défaut Clause Except. Extraire un champs, possible ou non ?
    Bonjour à tous,

    Ca fait un petit moment que je cherche, j'ai l'impression que ce que je recherche n'est pas possible... Mais j'ai besoin d'une confirmation, pcq cela me parait bizarre que cela n'existe pas... Alors voilà le soucis

    j'utilise la clause except comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select a,b,c FROM tab1
    WHERE  a = 'test'
    except 
    Select a,b,c FROM tab1
    WHERE  a = 'test2'
    Jusque là tout va bien, par contre j'aimerai bien récupérer l'identifiant unique du premier select sans l'inclure dans la clause except genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select a,b,c, [id] FROM tab1
    WHERE  a = 'test'
    except 
    Select a,b,c FROM tab1
    WHERE  a = 'test2'
    Il existe une synthaxe poru faire ce genre de choses ? Possible , ou non ?

    D'avance merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select a,b,c FROM tab1
    WHERE  a = 'test'
    except 
    Select a,b,c FROM tab1
    WHERE  a = 'test2'
    Euh ? Là, tu veux retirer des lignes de ton premier select, les lignes de ton 2ème select mais vu que la colonne A sera toujours différentes, ça ne sert à rien.

    Est-ce que tu voudrais plutôt faire ça, au final ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select id FROM tab1 WHERE  a = 'test'
    except 
    Select id FROM tab1 WHERE  a = 'test2'

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 50
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Euh ? Là, tu veux retirer des lignes de ton premier select, les lignes de ton 2ème select mais vu que la colonne A sera toujours différentes, ça ne sert à rien.

    Est-ce que tu voudrais plutôt faire ça, au final ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select id FROM tab1 WHERE  a = 'test'
    except 
    Select id FROM tab1 WHERE  a = 'test2'
    Euh oui tu as raison... #fail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123
    Select a,b,c  FROM tab1 WHERE  d = 'test'
    except 
    Select a,b,c   FROM tab1 WHERE  d = 'test2'
    Et je voudrais extraire l'iddu premeir select... Mais si je le mets dans le select... je n'aurai plus de résultat (comme dans mon premier message en fait)

    Du coup, il y a une synthaxe particulière ou un moyen simpl de le faire ?

    Merci

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Votre demande n'est pas très claire.

    Est-ce ceci que vous voulez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT a,b,c,id
    FROM    Tab1 T1
    LEFT OUTER JOIN Tab1 T2
         ON    T1.a = T2.a
         AND   T1.b = T2.b
         AND   T1.c = T2.c
         AND   T2.d = 'test2'
    WHERE T1.d = 'test'
        AND T2.id IS NULL
    Est-ce que certaines colonnes (a,b ou c) sont nullables ? Dans l'affirmative, il faudra modifier la clause de jointure en fonction de ce que vous voulez...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ça serait bien que tu nous fournisses les caractéristiques de ta table avec un jeu d'essai et le résultat attendu parce que là, on va continuer à faire des hypothèses sur ton besoin plutôt que de le résoudre.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/02/2006, 18h52
  2. Réponses: 18
    Dernier message: 27/02/2006, 00h07
  3. [vb.net] datagridview imbriqués, possible ou non?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/02/2006, 18h46
  4. Réponses: 4
    Dernier message: 12/10/2005, 17h13
  5. [Quick Report] Valeur d'un champ existante mais non affichée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/03/2005, 10h15

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