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

Requêtes MySQL Discussion :

Requete sql avec les dates


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 19
    Points
    19
    Par défaut Requete sql avec les dates
    Bonjour,
    J'ai une table 'releve' qui contient plusieurs champs: id, date, heure, temperature (c'est un relevé météo d'une année avec une fréquence de mesure d'1 quart d'heure....)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MAX(temperature) AS temperature, date, heure
    FROM releve
    WHERE TO_DAYS(NOW()) - TO_DAYS(date) <7
    GROUP BY date
    J'obtiens ceci avec la requête précédente:

    temperature| date| heure
    8.64722| 2008-11-24| 00:15:00
    7.36931| 2008-11-25| 00:15:00
    9.44333| 2008-11-26| 00:15:00
    8.82167| 2008-11-27| 00:15:00
    6.37695| 2008-11-28| 00:15:00
    5.38833| 2008-11-29| 00:15:00
    3.83257| 2008-11-30| 00:15:00

    Le problème est que l'heure retournée ne correspond pas à l'heure où la température était la maximale mais à l'heure du premier enregistrement de la journée (minuit quinze)
    Visiblement on ne peut pas mettre de MAX() dans une clause WHERE, sinon j'aurais fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MAX(temperature) AS temperature, date, heure
    FROM releve
    WHERE TO_DAYS(NOW()) - TO_DAYS(date) <7 AND temperature = MAX(temperature)
    GROUP BY date
    d'avance merci pour l'aide apportée

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Et comme ceci

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT MAX(temperature) AS temperature, date, heure
    FROM releve
    WHERE DATEDIFF(NOW(),date) < 7
    GROUP BY date

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    La réponse apporté à ce post http://www.developpez.net/forums/d64...bleme-requete/ est tout à fait transposable à ton problème.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Et comme ceci

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT MAX(temperature) AS temperature, date, heure
    FROM releve
    WHERE DATEDIFF(NOW(),date) < 7
    GROUP BY date
    Et non, toujours pareil!
    Merci quand même!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Maljuna Kris Voir le message
    Saluton,
    La réponse apporté à ce post http://www.developpez.net/forums/d64...bleme-requete/ est tout à fait transposable à ton problème.
    Merci bien je regarde ça.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Déjà, est-ce que ceci, marche pour toutes les dates.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT MAX(temperature) AS temperature, date, heure
    FROM releve
    GROUP BY date

  7. #7
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    GROUP BY date ne garantit pas la corrélation entre heure et MAX(temperature).
    MySQL retournera bien MAX(temperature) et la date, puisque le groupage se fait sur elle, par contre l'heure sera la première rencontrée dans la table.

Discussions similaires

  1. Requete sql avec les CASE
    Par SOPSOU dans le forum InterBase
    Réponses: 4
    Dernier message: 17/08/2010, 11h29
  2. Requete Sql avec des dates
    Par za_za dans le forum VB.NET
    Réponses: 6
    Dernier message: 31/07/2009, 09h56
  3. [SQL] requete sql avec les dates
    Par berti dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/03/2008, 13h32
  4. Erreur dans la requete : pb avec les dates
    Par shub dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 22/06/2006, 15h52

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