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

  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