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 :

pb avec select sur deux champs


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut pb avec select sur deux champs
    Bonjour,
    J'ai une table qui contient 2 champs R1 et R2. Ces deux champs peuvent contenir les memes valeursJe voudrais faire un select sur ces champs mais si une valeur est redondante (si elle apparait a la fois dans R1 et R2) je voudrais qu'elle n'apparaisse qu'une seule fois. J'ai essaye avec DISTINCTmais ca ne fonctionne pas sur deux champs a la fois.
    Comment puis je faire ca ?
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Par défaut
    Bonjour,

    je suis pas sur d'avoir compris mais tu peux essayer ça (si c'est avec SQLServer, sinon je ne garantis rien) :

    select distinct R1, case when R1=R2 then '' else R2 end
    from table1
    En espérant que ca t'aidera !!

  3. #3
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Merci.
    Oui j'utilise sql server
    J'ai essaye ton code mais ca me donne toujours le meme resultat: des valeurs de R2 sont affichees alors qu'elles sont dans R1, du coup elles sont affichees deux fois.

    Sinon c'est possible de tout regrouper (valeurs de R1 + valeurs de R2) dans un seul champs de maniere a ne retourner qu'un champs ?

    Merci

  4. #4
    Membre expérimenté Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Par défaut
    Une question pour comprendre exactement ce que tu veux. Admettons que dans ta table tu as les valeurs suivantes :

    R1 R2
    A B
    A A
    B C
    C D
    tu veux un affichages sous quelles formes :

    ca (normalement le résultat de ma requête) :
    R1 R2
    A B
    A
    B C
    C D
    ou ca :
    R1 R2
    A
    B
    C D
    dans ce cas la tu peux essayé ca :
    select distinct tab1.R1, tab1.R2
    from table1 tab1
    where tab1.R2 not in (select distinct R1 from table1)
    union
    select distinct tab1.R1, '' as R2
    where tab1.R2 in (select distinct R1 from table1)
    Ou alors j'ai rien compris !

  5. #5
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Oui effectivement je veux un truc comme ca :

    R1 R2
    A
    B
    C D

    Mais ce serait encore mieux comme ca :

    Result
    A
    B
    C
    D

    Sinon la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct tab1.R1, '' as R2
    dans le code que tu m'as file ne marche pas. J'obtiens Invalid Column Name R1.
    Une idee ?

  6. #6
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Ha si ca marche, il manquait juste From Table1

    Voila merci beaucoup, comment puis-je regrouper tous les resultats maintenant de maniere a avoir

    Result
    A
    B
    C
    D

    Merci

  7. #7
    Membre expérimenté Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Par défaut
    Dans ce cas la ceci devrait passer :

    select distinct tab1.R1
    from table1 tab1
    union
    select distinct tab1.R2 as R1
    from table1 tab1
    where tab1.R2 not in (select distinct R1 from table1)

  8. #8
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Merci infiniment !

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

Discussions similaires

  1. Requete UPDATE avec SELECT sur 2 champs
    Par ngstudio dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/09/2009, 14h47
  2. select sur un champs texte avec traitement du texte
    Par nicerico dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/04/2009, 07h57
  3. Select sur deux champ avec prèsence d'au moins 1
    Par 000Alucard000 dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/11/2008, 11h13
  4. [Oracle] jointures avec une somme sur deux champs
    Par guggus dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/10/2006, 17h06
  5. SELECT sur un champ avec accent
    Par Bibicmoi dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/08/2005, 12h20

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