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 :

GROUP BY avec les dates


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut GROUP BY avec les dates
    Bonjour à tous, voila mon souci, je fais une requête qui me permet d'afficher un lieu, un type de matériel utilisé et le temps de travail effectué, suivant une période donnée.

    j'arrive à afficher le site, le type utilisé et le temps de travail total pour le type de matériel utilisé. Mais dès que j'insère la notion de date, le regroupement ne se fait plus.
    Ca m'affiche au tant de ligne qu'il y a de date entre la période saisie.

    Voila ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql1 = "SELECT travail.NUM_SITE, type_materiel.LIB_TYPE, travail.DATE_TRAVAIL, travail.PERSONNE, "
    ."Sum(travail.HEURE_TRAVAIL) AS SommeDeHEURE_TRAVAIL FROM (materiel INNER JOIN (sites INNER JOIN travail ON sites.NUM_SITE = "
    ."travail.NUM_SITE) ON materiel.NUM_MATERIEL = travail.NUM_MATERIEL) INNER JOIN type_materiel ON materiel.NUM_TYPE = "
    ."type_materiel.NUM_TYPE GROUP BY travail.NUM_SITE, type_materiel.LIB_TYPE, travail.DATE_TRAVAIL "
    ."HAVING (((travail.NUM_SITE)=$numsite) AND ((travail.DATE_TRAVAIL) Between '$datedu' AND '$dateau'));";
    Si quelqu'un a une solution...
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 244
    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 244
    Points : 12 878
    Points
    12 878
    Par défaut
    Bonjour,
    Je me permets de ré-écrire la requête:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT travail.NUM_SITE, type_materiel.LIB_TYPE, travail.DATE_TRAVAIL, travail.PERSONNE,
    Sum(travail.HEURE_TRAVAIL) AS SommeDeHEURE_TRAVAIL
    FROM materiel  
    INNER JOIN travail ON travail.NUM_MATERIEL = materiel.NUM_MATERIEL
    inner JOIN sites ON sites.NUM_SITE = travail.NUM_SITE
    INNER JOIN type_materiel ON type_materiel.NUM_TYPE = materiel.NUM_TYPE 
    where travail.NUM_SITE=$numsite AND travail.DATE_TRAVAIL Between '$datedu' AND '$dateau'
    GROUP BY travail.NUM_SITE, type_materiel.LIB_TYPE, travail.DATE_TRAVAIL, travail.PERSONNE

    Outre les jointures "alambiquées", la restriction n'a ici rien à faire dans la clause HAVING, et il manquait une colonne dans la clause GROUP BY (travail.personne).

    Sinon il nous faudrait le SGBD (MySQL ?), un jeu d'essai, le résultat attendu et ce que renvoie la requête.

    Tatayo.

Discussions similaires

  1. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  2. problème avec les dates nulles
    Par shingo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/09/2005, 12h32
  3. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  4. Pb avec les dates < année 2000
    Par elitost dans le forum Oracle
    Réponses: 2
    Dernier message: 15/09/2004, 12h37
  5. Interbase - dbExpress -> problème avec les dates
    Par marghett dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 03h55

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