Date décalée sur xAsis

Ce forum est dédié aux discussions qui concernent les graphiques réalisés avec la librairie Highcharts, Une question, un bug ?

Modérateurs : jturlier, Météo Villarzel

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 09:04

[quote="PascalWMR"
Le regroupement se fait sur l'année et le mois substr(recdateTZ,1,6) pour extraire tous les mois voulus pour toutes les années présente dans la BDD.
Pascal[/quote]
Bonjour Pascal,
Permet moi de ne pas être tout à fait d'accord :
le regroupement ne doit pas se faire sur année/mois mais sur annee ou group by 1 étant donné que le mois n'apparait pas dans le SELECT. Le fait qu'il soit dans le WHERE n'a pas à être pris en compte !!!!

En SQL, seuls les champs qui apparaissent dans le SELECT peuvent être pris en compte dans un GROUP BY

Bonne journée

Jean
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 09:16

RE,

tu n'est pas obligé de passer par un UNION, le pb vient du fait que tu utilises le count(*) dans le SELECT avec la clause t_out_mini <= 0 dans le WHERE qui elle empêche l'affichage de ta ligne.
il aurait été plus intéressant d'écrire
SELECT substr(recdateTZ,1,4), COUNT(t_out_mini <= 0) FROM MiniMaxidata WHERE substr(recdateTZ,5,2)='11' GROUP BY 1;
dans ce cas, même si tu n'as pas de température <0, ça n'est plus une condition d'affichage de ta ligne.

Jean
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 13 déc. 2014, 10:25

Salut Jean

Je viens de tester ton code directement avec phpMyAdmin mais ça ne marche pas
Il affiche le nombre de jours total du mois
jturlier a écrit :RE,

tu n'est pas obligé de passer par un UNION, le pb vient du fait que tu utilises le count(*) dans le SELECT avec la clause t_out_mini <= 0 dans le WHERE qui elle empêche l'affichage de ta ligne.
il aurait été plus intéressant d'écrire
SELECT substr(recdateTZ,1,4), COUNT(t_out_mini <= 0) FROM MiniMaxidata WHERE substr(recdateTZ,5,2)='11' GROUP BY 1;
dans ce cas, même si tu n'as pas de température <0, ça n'est plus une condition d'affichage de ta ligne.

Jean
Par contre, tu a raison, il est vrai que l'on peut se passer de group by substr(recdateTZ,1,6) pour le remplacer par GROUP BY 1.
A l'origine, cette requête était utilisée avec tstamp et c'est pour cela que le regroupement ne fonctionnait pas et que j'utilisait ce type de GROUP BY.

Ou je ne suis pas d'accord, c'est pour le union

Le 1er select extrait les température <=0 donc les mois ou il n'y a pas de temp <=0 sont ignorés.
Pour que ces données apparaissent quand même il faut les forcées à null par un UNION SELECT
dans ce cas, même si tu n'as pas de température <0, ça n'est plus une condition d'affichage de ta ligne
Oui tu as raison s'il n'y as pas de temp<=0 ça n'est plus une condition d'affichage de la ligne.
Mais justement, ce que l'on veux, c'est le contraire.
Ce que l'on veux, c'est que même si une année, dans un mois il n'a pas gelé alors que normalement il aurait du, cette année apparaisse dans le graphique avec une donnée égale à 0.

Concrètement pour JP, le nombre de jours normal de gelé en novembre est de 7.1 jours (j'habite à quelque centaine de mètres de chez lui) . Or cette année, il n'a pas gelé. Si j'applique ta requête, en 2015, dans le graphique de JP il manquera l'année 2014. On passera directement de 2013 à 2015.

Avec ma requête UNION, ce problème est résolu.
Regarde ce graphique http://www.monsite-meteo.eu/Page/graphd ... ales_1.php.
Si j'applique ta méthode, le mois de novembre n’apparaîtra pas, tout comme le mois d’août et septembre pour les temp >30°.

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 10:42

PascalWMR a écrit :Ou je ne suis pas d'accord, c'est pour le union
oui tu as raison, j'ai juste fait une petite erreur car j'avais par fainéantise repris ta ligne !!!
essaie plutôt ça :
SELECT substr(recdateTZ,1,4), sum(t_out_mini <= 0) FROM MiniMaxiidata WHERE substr(recdateTZ,5,2)='11' GROUP BY 1;
Tu as bien 0 pour pour les mois sans temp<0

La raison pour laquelle ça ne fonctionnait pas c'est que le count ne se préoccupe pas de la raison, il y en a toujours une, il ne compte pas des 1 ou des 0 contrairement au SUM qui les additionne.

Au fait je n'ai pas dit que ton UNION ne fonctionnait pas, mais qu'il me semblait inutile de passer par ce type de requête; question de simplicité

Bonne journée et @+
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 13 déc. 2014, 10:56

Re Jean

Effectivement, ça fonctionne mieux et le code est plus léger.

Je vais revoir les autres codes similaires que j'ai pour améliorer la durée du traitement.

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 10:58

J'ai oublié, avec ce type de requête, tu peux aussi faire tous tes autres champs :
SELECT substr(recdateTZ,1,4), sum(t_out_mini <= 0) as jours_gel, sum(t_out_mini >= 35) as jours_canicule, sum(gust_maxi_mini >=50) as vent_fort FROM MiniMaxiidata WHERE substr(recdateTZ,5,2)='11' GROUP BY 1;
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 10:58

Ce style de requête va te suprimer les requêtes uniques pour traiter chacun de tes champs
Jean

Station :
VP2pro + anémomètre ultrasons et console Vue
Cumulus 1.9.4 + Cumulus2SQL + MySQL

Audio :
FR
PC :
W10 64bits migré
http://meteoserignan.ddns.net
Image

Avatar du membre
jturlier
Administrateur du site
Messages : 393
Enregistré le : 10 déc. 2014, 10:20
Localisation : Sérignan 34410
Contact :

Re: Date décalée sur xAsis

Message par jturlier » 13 déc. 2014, 11:09

Pour info voici une requête et son résultat ( les valeurs de sélection sont fantaisistes et ne sont choisies que pour avoir des valeurs dans chacune des colonnes)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 13 déc. 2014, 11:15

Excellente ta solution, je ne connaissait pas. Je me débrouille mais je ne suis pas expert. Je suis autodidacte.
J'ai testé nickel.

Tout autre chose, maintenant que tu est sur ce forum, que pense-tu de cela http://www.boock.ch/meteo/forum/viewtop ... =thsw#p738

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Avatar du membre
PascalWMR
Messages : 323
Enregistré le : 16 févr. 2014, 09:28
Localisation : CONFLANS EN JARNISY (F54800)
Contact :

Re: Date décalée sur xAsis

Message par PascalWMR » 13 déc. 2014, 11:38

Nickel Jean

Graphique http://www.monsite-meteo.eu/Page/graphd ... ales_1.php modifé avec nouvelle requête.

Traitement nettement plus rapide

Merci.

A+
Pascal
Station VP2Plus, Windows 10 64 bits,WeatherLink 6.0.5, VP2SQL, Graphiques Dynamiques à partir d'une BDD MySQL
Météo Conflans-en-Jarnisy
Image

Répondre