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 :

Problème group by


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut Problème group by
    Bonjour,
    Voici le type de données de j'ai dans ma table COLLECTE
    NO_ZONE | NO_TOURNEE | VOLUME | DATE_CREATION
    12 | 100 | 12000 | 12/01/2007
    12 | 100 | 9852 | 16/01/2007
    8 | 120 | 12000 | 12/01/2007
    20 | 845 | 12000 | 11/01/2007
    20 | 845 | 12000 | 12/01/2007

    j'aimerai récupérer la zone, la tournée et le volume le plus récent en regroupant par zone et par tournée (c'est à dire une ligne par zone et par tournée).

    Ceci ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select max(DATE_CREATION),NO_ZONE,NO_TOURNEE,VOLUME
    from COLLECTE
    group by NO_ZONE,NO_TOURNEE
    En effet mon volume ne figure pas dans mon regroupement
    Merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    en rajoutant volume dans le group by?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut
    non car la je vais avoir un regroupement en plus sur le volume. Je vais donc obtenir une ligne par zone,tournée et volume vu que chaque volume est différent et donc la fonction max ne sert à rien.

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    je ne suis pas du meme avis que toi.
    je suis même étonné que ta requete ne te retourne pas d'erreur

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Par défaut
    Oui Nellynew a tt a fait raison, en rajoutant volume ds le group by il ya aura une ligne par NO_ZONE, NO_TOURNEE et par VOLUME. C'est pas bon.

    La piste à mon avis est l'utilisation d'une ss requête qui te ramenera les champs NO_ZONE, NO_TOURNEE, VOLUME (Rq principal) pour lesquels la DATE CRETiON est le max.

    SELECT NO_ZONE, NO_TOURNEE, VOLUME
    FROM COLLECTE
    WHERE DATE_CREATION = any (SELECT max (DATE_CREATION)
    from COLLECTE
    GROUP BY NO_ZONE, NO_TOURNEE);CODE][/CODE]

    Le pb je comprends pas pourquoi, ca marche sauf pour no zone et no tournee 12 et 100 où ca les affiche distinctement.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Par défaut
    j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT A.NO_ZONE, A.NO_TOURNEE, A.VOLUME FROM COLLECTE A
    JOIN (SELECT MAX(DATE_CREATION) AS maxi, NO_ZONE, NO_TOURNEE 
    FROM COLLECTE
    GROUP BY NO_ZC, NO_TOURNEE) B
    ON A.NO_ZONE = B.NO_ZONE
    AND A.NO_TOURNEE = B.NO_TOURNEE
    WHERE A.DATE_CREATION=B.maxi
    Ceci donne le bon résultat mais c'est très très très long...

Discussions similaires

  1. Problème group by dans requete union
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 07/01/2008, 16h49
  2. Problème Group by
    Par tollaire dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/08/2007, 09h51
  3. SharePoint 2007 - Problème groupes et permissions
    Par Najla dans le forum SharePoint
    Réponses: 3
    Dernier message: 20/03/2007, 22h42
  4. [SQL] Problème group by sur view
    Par helene34 dans le forum Oracle
    Réponses: 2
    Dernier message: 04/01/2007, 08h25
  5. Problème Group By
    Par Fishes83 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/01/2007, 13h52

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