Extraction mysql dernière date en fonction de valeurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Extraction mysql dernière date en fonction de valeurs

Re: Extraction mysql dernière date en fonction de valeurs

par illidan05 » 14 janv. 2012, 18:28

Si ça peut aider quelqu'un on m'a donné la solution à mon problème :
SELECT 
   h1.*
FROM 
   historique h1
      INNER JOIN (
         SELECT 
            historique.`Concatener`, 
            historique.`TypeIntervention`, 
            MAX(historique.DateIntervention) AS MaxDate
         FROM 
            historique
         GROUP BY 
            historique.`Concatener`, 
            historique.`TypeIntervention`            
      ) AS h2 ON h1.`Concatener` = h2.Concatener 
                 AND h1.`TypeIntervention` = h2.`TypeIntervention`
                 AND h1.`DateIntervention` = h2.`MaxDate`
GROUP BY
   h1.`Concatener`, 
   h1.`TypeIntervention`
ORDER BY
   h1.`Concatener`,
   h1.`DateIntervention` DESC
Je sais qu'il faudrait que j'améliore ma bdd, je vais m'y mettre après avoir appri quelques trucs car c'est un peu brouillon mais en attendant ça fonctionne comme je le souhaitais.

Re: Extraction mysql dernière date en fonction de valeurs

par illidan05 » 14 janv. 2012, 09:31

Salut,

J'ai testé, ça me sort un résultat mais pas ce que je recherche.

Je me suis résilié à faire plus simple donc j'exporte ma table en CSV et sous excel je fais un tri décroissant par date et je renvoi tout dans mysql (à l'origine mes données venaient d'un fichier excel).
Ainsi quand je fais un GROUP BY Concatener, vu que le premier élément trouvé est gardé en référence, il tombe forcément sur la date la plus récente.

Code : Tout sélectionner

SELECT * FROM Historique GROUP BY Concatener ORDER BY Loc, Ensemble, RepUnifilaire
Le seul inconvénient c'est que 2 ou 3 fois par an je dois extraire la table sous excel et réorganiser les dates mais bon ça n'est pas un travail conséquent non plus.

En tout cas encore merci pour votre aide à tous

Re: Extraction mysql dernière date en fonction de valeurs

par moogli » 10 janv. 2012, 11:36

date_format pour le formatage, le reste sur le site de mysql :)

@+

Re: Extraction mysql dernière date en fonction de valeurs

par Shenryu » 10 janv. 2012, 11:09

Salut,

Il faut que tu utilises le format SQL avec un champ de type Date (YYYY-MM-DD). Ce format permet les tris comme tu le désires justement.

Après il suffit de reformater ta date au moment de l'affichage.

Extraction mysql dernière date en fonction de valeurs

par illidan05 » 09 janv. 2012, 20:36

bonjour à tous,

Je souhaite exécuter une requête mysql qui trie les résultats comme expliqué ci-dessous :

J'ai une table qui se nomme 'Historique' dans laquelle est stocké un historique complet d'interventions sur différents matériels.

Dans cette table j'ai entre autres les colonnes suivantes : Localisation, Type matériel, Type intervention et date intervention.

Exemple :

Localisation | Typemat | Typeinter | Dateinter
lieu1| mat1 | vérif | 18/08/2009
lieu1| mat1 | vérif |19/04/2006
lieu1 | mat1 |vérif | 19/02/2003
lieu1 | mat1 | révis | 14/01/2008
lieu1 | mat1 | révis | 14/02/2011
lieu1 | mat1 | révis |17/08/2005
lieu1 | mat2 | vérif | 18/08/2009
lieu1 | mat2 | vérif | 19/04/2006
lieu2 | mat1 | vérif |19/02/2003
lieu2 | mat1 | vérif | 14/01/2008
lieu2 | mat3 | révis | 14/02/2011
lieu2 | mat3| révis | 17/08/2005


Quand je fais une extraction de ces données dans php, je souhaiterais que ma requête ne prenne en compte seulement la date la plus récente en fonction du type d'intervention.

Dans cette exemple je voudrais que ma requête sorte donc les lignes suivantes :

Localisation | Typemat | Typeinter | Dateinter
lieu1 | mat1 | vérif | 18/08/2009

lieu1 | mat1 | révis | 14/02/2011

lieu1 | mat2 | vérif | 18/08/2009

lieu2 | mat1 | vérif |14/01/2008

lieu2 | mat3| révis | 14/02/2011


Voilà, merci pour votre aide