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 :

Requête SQL min max avec inner join


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Requête SQL min max avec inner join
    Bonjour,

    Je dispose de 2 tables :
    Table DataRuche (IDDATA et IDRUCHE)
    Table Data (POIDS et DATE)

    Je voudrais faire une requête pour récupérer le poids max et mini durant les 5 derniers jours pour une ruche en utilisant IDDRUCHE.

    Dans mon exemple j'essaie de récupérer les valeurs de la colonne POIDS (poids max et poids min).

    J'ai fait une requête et j'arrive bien à récupérer toutes les valeurs des 5 derniers jours pour une ruche et une autre requête pour me récupérer les valeurs min et max pour la table ENTIERE, or je veux récupérer les valeurs min et max pour une seule ruche.

    Voici mes deux requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Data.POIDS FROM Data INNER JOIN DataRuche ON DataRuche.IDDATA = Data.IDDATA WHERE IDRUCHE = '1';
    Et voici la requête qui récupére mes valeurs poids min et max dans ma table Data pour les 5 derniers jours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select POIDS from Data where DATE in ( select min(DATE) from Data where Data.DATE > DATE_SUB(CURDATE(), INTERVAL 5 DAY) union select max(DATE) from Data where Data.DATE > DATE_SUB(CURDATE(), INTERVAL 5 DAY) ) ;
    Auriez-vous une petite idée par hasard ?

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    1/ Ta recherche de date me paraît un peu compense, j'aurais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.DATE between DATE_SUB(CURDATE(), INTERVAL 5 DAY) and CURDATE()
    2/ Pour ta recherche, il suffit alors de combiner les conditions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT min(Data.POIDS), max(Data.POIDS) 
                 FROM Data INNER JOIN DataRuche ON DataRuche.IDDATA = Data.IDDATA 
                    WHERE IDRUCHE = '1' 
                                AND data.DATE between DATE_SUB(CURDATE(), INTERVAL 5 DAY) and CURDATE() ;
    3/ Attention DATE est un mot réservé en SQL, tu risques d'avoir des erreurs de syntaxe à cause du nom de la colonne.

    Cordialement

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup, en y réfléchissant oui c'est plus logique.

    Merci à toi en tout cas.

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

Discussions similaires

  1. Requête SQL avec inner join, pas certaine de ma requête
    Par marieSQL dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/03/2015, 23h08
  2. Requête SQL avec inner join incorrect
    Par FabienLep dans le forum Langage SQL
    Réponses: 13
    Dernier message: 10/11/2014, 17h45
  3. Réponses: 1
    Dernier message: 28/04/2009, 02h12
  4. [SQL] Selection du min dans un inner join
    Par elfiestador dans le forum Langage SQL
    Réponses: 0
    Dernier message: 05/12/2008, 12h02
  5. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57

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