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 sur group by


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 8
    Points : 9
    Points
    9
    Par défaut PB sur group by
    Bonjour,
    voici ma table TRACE

    ID TRFDATE ETAT
    1 12/09/2007 20 :00 :00 RECU
    1 12/09/2007 20 :10 :00 TRANSFERE
    2 12/09/2007 15 :05 :00 RECU
    2 12/09/2007 18 :08 :00 TRANSFERE
    ….


    Je veux le nombre de lignes par Temps de transport(date de transfert – date de reçu) en HEURE

    Et j’y arrive pas du tout !
    voici ma requête et elle ne marche pas à cause du gorup by (jepense que le group by avec un select, ça ne marche pas!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select trunc((select t1.trfdate as datefin from trace t1 where t1.id=t2.id and etat='TRANSFERE')-(t2.trfdate)*24)
    as NB_heure,count(*)
    from trace t2
    where t2.etat='RECU' 
    and t2.id = (select id from trace t1 where t1.id=t2.id and etat='TRANSFERE')
    group by trunc((select t1.trfdate as datefin from trace t1 where t1.id=t2.id and etat='TRANSFERE')-(t2.trfdate)*24)
    merci pour votre aide!
    Hélène

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 29
    Points
    29
    Par défaut
    passe par des vues.
    crée toi une vue des enregistrement de type "RECU"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from trace WHERE t2.etat='RECU'
    une autre de type "TRANSFERT"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from TRACE where etat='TRANSFERE'
    ensuite tu crée un troisième vue qui calcul la différence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select trace.id ,DATEDIFF(hour,vue1.trfdate,vue2.trfdate) as différence from vue1, vue2, trace, where trace.id = vue1.id and trace.id=vue2.id
    Pour finir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  id, max(différence) from vue3 group by id
    ce n'est qu'un indication de méthode, hein , le code écrit fonctionne sûrement pas en l'état...mais quand les reuqêtes sont compliquées ,ne pas hésiter à les décomposées en vues, pour vérifier quelles étapes posent problème, quit ensuite à tout remettre sous une seul requête.

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

Discussions similaires

  1. Aide sur Group by , sum et count
    Par rippoz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/06/2007, 14h48
  2. [MySQL 4.0] Question sur GROUP BY
    Par Fabouney dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/09/2006, 19h45
  3. [Access 2000] Evénement click sur groupe d'option
    Par Mariboo dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2006, 14h52
  4. [C.R .8.5] doublons de référence sur groupes différents
    Par leuke dans le forum SAP Crystal Reports
    Réponses: 24
    Dernier message: 14/11/2005, 11h15
  5. ordre correct sur group ?
    Par Force59 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 02/04/2004, 09h27

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