|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 817 ![]() |
Bonjour,
Je ne vois pas comment m'y prendre pour récupérer la différence de 2 requêtes et effectuer le tri en fonction de ce résultat : Soit une table dont l'un des champs comptabilise un résultat à un instant t. Je cherche à effectuer une requête qui affiche les champs triés en fonction de la plus forte progression entre 2 dates. Quelqu'un a-t-il une idée ?
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
Entre deux dates consécutives ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
salut,
si tu veux l'intersection entre 2 requêtes, tu peux soit utiliser des jointures soit une sous requête.
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Je vais donc supposer que par entre 2 dates, tu veux dire 2 dates consécutives, c'est à dire qu'il n'y a pas de date intermédiaire.
Voilà ce que j'ai fait: Citation:
Code sql :
Citation:
Il demeure un problème, le LIMIT 1 supprime les éventuelles ex-aequos.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||||
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
pour faire simple l'intersection c'est juste un inner join où la condition de jointure correspond à l'égalité de toutes les colonnes de la table gauche et droite
si tes dates ne sont pas consécutives (cas général tu utilise un between dans chaque requêtes)... je suppose 2 tables t1(id,a,b,datet) et t2(id,a,b,datet) pour faire l'intersection entre t1 et t2 pour datet entre date1 et date2 avec date1<date2: Code sql :
voilà l'idée générale
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
||
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
Quant à la proposition d'ericd69, je ne vois pas à quoi correspondent les colonnes a et b.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
Citation:
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Il nous dit qu'il cherche à comparer l'écart d'une colonne résultat entre les lignes d'une table pour deux valeurs d'une autre colonne de type date, valeur que j'ai supposées consécutives.
La requête ne semble donc concerner que deux colonnes de la table la colonne contenant le résultat et la colonne contenant la date. Enfin, c'est ce que j'ai compris du message initial certes plutôt abscons.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#9 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
il a différents exemples de syntaxes pour faire la même chose dans différents cas de figure et donc à lui de voir. Maintenant, vu le peu d'infos données
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#10 |
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 817 ![]() |
Désolé,
c'était effectivement très light mais je devais m'absenter et ne pensais pas que vous seriez aussi prolixe sur le sujet. Je jetterais un œil plus attentif à vos propositions dès demain matin et vous remercie déjà de vos contributions. En attendant, pour plus de précision : la table Stat les champs : `DATE``idRes``stat1` le remplissage de la table s'effectue via un script exécuté par le planificateur de tâches de mon hébergeur à fréquence régulière - il consiste à sauvegarder un instantané de certaines données. La requête recherchée doit permettre de lister pour chaque date (abscisse) et pour chaque idRes(ordonnée) la variation (différence) de stat1 entre chaque date afin de permettre un affichage tableau des données puis sous forme d'un chart. Cette fois-ci, j'espère avoir été moins ... court.
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
sacré toi
![]() en effet ça change la donne... aucun de nous a bon lol parce qu'en fait, tu fais un graph 3d et non 2d vu que tu traces `DATE`,`idRes`, ecart le problème qui se pose tient du group by plutôt donc et d'une fonction ensembliste dépendant de ce que tu veux obtenir comme écart (minimum, moyen, maximum) car tu peux donc avoir plusieurs `DATE` pour un même `idRes` ou inversement non?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#12 |
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 817 ![]() |
Désolé, à faire vite, on dit des âneries.
En ordonnée, c'est la valeur de stat1 et chaque courbe représentera un idRes. Au final, je vais faire un limit n afin de ne conserver que les n meilleures progressions et établir un graphe de courbes pour chaque idRes soit un graphe du style ![]() Date restera en abscisse.
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
donc faut découper le pb en 2:
la liste des `idRes` et pour chacun la simple sélection de stat1 par date en gros simplement une procédure stockée avec un curseur qui balaye les `idRes`et génère un jeu de résultat pour chacun d'eux représentant les couples (`idRes`,`stat1`) sans autre forme de calcul (pas de moyenne ou autre truc du genre)... HEIN? ![]() ça correspond bien cette fois?
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#14 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
@ericd69 > tu oublies
Citation:
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
|
|
#15 |
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 817 ![]() |
Ben j'avais pas mieux sous la main comme graphe
mais le principe de départ était la variation d'une date à l'autre plutôt que la valeur cumulée de stat1 d'où l'opération ecart de date à date. Ceci dit, j'étais parti pour pratiquer ainsi : - liste des n dernières dates - pour les 2 dernières dates, identification des p idRes ayant subies les plus fortes variations de stat1 - puis ensuite pour chaque date de n dates correspondant à la liste précédemment identifiée, compléter le tableau.
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|
|
00
|
|
|
#16 | |
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 817 ![]() |
Citation:
car des idRes peuvent disparaitre sur la période tout comme d'autres peuvent être ajoutées. Le fait de préférer la période de référence la plus récente permet de mieux coller à l'actualité.
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|
|
|
00
|
|
|
#17 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Evite les mots réservés SQL pour les noms de colonnes (DATE).
Je te propose de travailler à partir de cette requête Code sql :
Je n'ai pas testé la requête.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#18 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
y a que toi qui peu dire l'unicité des couples (`idRes`,`DATE`)
![]() et donc le type de traitement en dépendra...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
nos interventions arrivent pas dans l'ordre lol... pas grave
pourquoi limites tu le max au dernier jour et le min sur le premier? rien ne te garantit qu'ils n'apparaissent pas ailleurs dans l'intervalle de date ? mais sinon ça donnera bien le résultat voulu
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Il veut la progression de l'idRes sur la période.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
Copyright © 2000-2012 - www.developpez.com