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 :

Un petit problème avec une requête SQL


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut Un petit problème avec une requête SQL
    bonjour,
    j'ai cet resultat apres avoir executer cette requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    select distinct com1.noCommande as noCommande1, com2.noCommande as noCommande2, com1.dateCommande as dateCommande
    from Commande com1, Commande com2
    where com1.dateCommande = com2.dateCommande 
    and com1.noCommande <> com2.noCommande
      4  /
     
    NOCOMMANDE1 NOCOMMANDE2 DATECOMMAN
    -----------      ----------- ----------
              3           2              02/06/2000
              2           3              02/06/2000
              6           5              09/07/2000
              5           6              09/07/2000
              8           7              15/07/2000
              7           8              15/07/2000
     
    6 rows selected.
    comme vous voyez j' ai des doublons ce que je dois afficher ca devrais etre ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NOCOMMANDE1 NOCOMMANDE2 DATECOMMAN
    ----------       - ----------- ----------
              3           2                02/06/2000
              6           5                09/07/2000
              8           7                15/07/2000
    ce que je dois avoir comme resultat c'est exctement la 1/2 du resultat obtenu
    mais j'arrive pas a eliminer les doublons au niveau de la date j'ai essayé avec une vue VIEW et par la suite faire un SELECT DISTINCT SUR LA DATECOMMANDE mais ca marche pas
    bienvenue a toutes suggestions
    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    je ne comprend pas bien le besoin, vu que vous avez omis pas mal de choses pour quel l'on comprenne votre cas.

    Ceci étant dit au lieu d'utiliser un "<>" utilisez un ">"

    Il y a peut être d'autre solutions plus approprié, mais pour ça il faudrai que vous développiez un peu

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GROUP BY DATECOMMAN

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 242
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Citation Envoyé par pc75 Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GROUP BY DATECOMMAN
    Ca ne fonctionnera que si tu appliques une fonction d'aggregation sur NOCOMMANDE1 et NOCOMMANDE2, et ici je ne vois pas trop quelle fonction appliquer...

    Tatayo.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Points : 226
    Points
    226
    Par défaut
    Ta requête permet d'afficher toutes les "paires" de commandes qui ont eu lieu. Par exemple, si tu as 4 commandes le 02/06, tu vas te retrouver (moyennant l'utilisation du > ou < noté par punkoff) avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    NOCOMMANDE1 NOCOMMANDE2  DATECOMMAN
    --------------------------------------------
               1          2      02/06/2000
               1          3      02/06/2000
               1          4      02/06/2000
               2          3      02/06/2000
               2          4      02/06/2000
               3          4      02/06/2000
    J'avoue ne pas en comprendre le but... Le nombre de commandes par jour aurait plus de sens pour moi, ou une sorte de liste des commandes par jour.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut eclaircissement
    au fait, si on prends comme exemple les deux premieres lignes du resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NOCOMMANDE1 NOCOMMANDE2 DATECOMMAN
    -----------      ----------- ----------
              3           2              02/06/2000
              2           3              02/06/2000
    c'est la meme chose car les commandes 2 et 3 ont étaient effectuer à la meme date alors il faut que j'affiche juste une des deux
    le GROUP BY ça marchera pas

    pour plus d'aide voici ma table de base dont je dois faire le tris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    select  distinct c1 as commande1, c2 as commande2, d1 as dateCommande from (select com1.noCommande as c1, com2.noCommande as c2, 
    com1.dateCommande as d1 from Commande com1, Commande com2
    where com1.dateCommande = com2.dateCommande)
     
     COMMANDE1  COMMANDE2 DATECOMMAN
    ---------- ---------- ----------
             1          1 01/06/2000
             3          2 02/06/2000
             2          2 02/06/2000
             3          3 02/06/2000
             2          3 02/06/2000
             4          4 05/07/2000
             6          5 09/07/2000
             5          5 09/07/2000
             6          6 09/07/2000
             5          6 09/07/2000
             8          7 15/07/2000
             7          7 15/07/2000
             8          8 15/07/2000
             7          8 15/07/2000
     
    14 rows selected.

  7. #7
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut,

    Lis entièrement ce que te disent les gens !!
    Punkoff te donnait la solution, KookieMonster le répète.

    En fait, ton critère de d'auto-jointure est symétrique.
    Donc si a est en relation avec b, alors b est également en relation avec a. Ce n'est pas le cas de ">" : si a est en relation avec b alors b ne sera pas en relation avec a.

    Je suppose qu'il faut t'écrire la requête, sinon tu vas encore une fois passer à côté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCT com1.noCommande AS noCommande1, com2.noCommande AS noCommande2, com1.dateCommande AS dateCommande
    FROM Commande com1, Commande com2
    WHERE com1.dateCommande = com2.dateCommande 
    AND com1.noCommande > com2.noCommande

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

Discussions similaires

  1. Petit problème avec une requête SQL en VB6
    Par muzele dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2007, 20h51
  2. Problème avec une requête sql
    Par mika0102 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/10/2007, 15h50
  3. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  4. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47

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