Trouver une valeur en mysql d'après une table

Fermé
Mikamadgik Messages postés 87 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 26 avril 2021 - 12 févr. 2014 à 20:30
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 15 févr. 2014 à 23:43
Bonjour,
Je cherche depuis presque 2 jours à résoudre un problème sur ma page informatique, et du coup je viens à vous pour voir si quelqu'un arriverai à résoudre ce calcul qui pourtant pourrait paraître simple.
J'ai fais un petit tableau pour bien visualisé.
PS: Pour cela qui aime les casses tête c'est un plaisir je pense.

Je souhaite savoir combien de matériel "23" sont utilisés au maximal du 2013-02-04 9h au 2013-02-23 8h? (en mysql)

Voici le tableau (qui représente la table):
https://www.zupimages.net/

A voir également:

3 réponses

Profil bloqué
14 févr. 2014 à 09:59
Quand tu dis maximum tu veux dire "combien de materiel on été utilisé en tout entre tel date et tel date" ou tu souhaite connaitre le jour où il y a eu le plus d'utilisation ?

Sinon en sql tu peux te servire de DATE() > ta_date
0
Mikamadgik Messages postés 87 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 26 avril 2021 1
15 févr. 2014 à 21:14
Je veux dire par la que je souhaite savoir le nombre maximum de matériel utilisé en même temps. Ce qui permet de savoir la quantité qu'il faut au minimum pour pouvoir répondre a la demande.
Donc connaitre le jour où il y a eu le plus d'utilisation peut être utile si tu sais comment le déterminer.

Ce que tu me donnes c'est le cas?
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 févr. 2014 à 23:43
Bonjour,

On pourrait sans doute essayer quelque chose de ce genre :
SELECT MAX(nombre) FROM (
    SELECT d.jour, count(*) as nombre
    FROM table t
    INNER JOIN (
         SELECT 1 as jour UNION ALL
         SELECT 2 UNION ALL
         SELECT 3 UNION ALL
         SELECT 4 UNION ALL
         SELECT 5 UNION ALL
         SELECT 6 UNION ALL
         SELECT 7 UNION ALL
         SELECT 8 UNION ALL
         SELECT 9 UNION ALL
         SELECT 10 UNION ALL
         SELECT 11 UNION ALL
         SELECT 12 UNION ALL
         SELECT 13 UNION ALL
         SELECT 14 UNION ALL
         SELECT 15 UNION ALL
         SELECT 16 UNION ALL
         SELECT 17 UNION ALL
         SELECT 18 UNION ALL
         SELECT 19 UNION ALL
         SELECT 20 UNION ALL
         SELECT 21 UNION ALL
         SELECT 22 UNION ALL
         SELECT 23 UNION ALL
         SELECT 24 UNION ALL
         SELECT 25 UNION ALL
         SELECT 26 UNION ALL
         SELECT 27 UNION ALL
         SELECT 28
    ) d ON MAKEDATE(2014, 31 + d.jour) between t.date_debut AND t.date_fin
    WHERE t.Materiel = 23
    GROUP BY d.jour
    ORDER BY d.jour
) nombreParJour


Si tu enlèves la première et la dernière ligne, tu as pour chaque jour le nombre de matériel de type 23 qui est sorti.
Si tu rajoutes ces deux lignes, tu récupères juste la valeur maximale.

Xavier
0