Date décalée sur xAsis
Modérateurs : jturlier, Météo Villarzel
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
[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
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
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
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
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
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
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
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
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
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
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
Je viens de tester ton code directement avec phpMyAdmin mais ça ne marche pas
Il affiche le nombre de jours total du mois
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.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
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
Oui tu as raison s'il n'y as pas de temp<=0 ça n'est plus une condition d'affichage de la ligne.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
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
Météo Conflans-en-Jarnisy
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
oui tu as raison, j'ai juste fait une petite erreur car j'avais par fainéantise repris ta ligne !!!PascalWMR a écrit :Ou je ne suis pas d'accord, c'est pour le union
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
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
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
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
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
Météo Conflans-en-Jarnisy
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
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;
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
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
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
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
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
- jturlier
- Administrateur du site
- Messages : 394
- Enregistré le : 10 déc. 2014, 10:20
- Localisation : Sérignan 34410
- Contact :
Re: Date décalée sur xAsis
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.
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
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
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
Météo Conflans-en-Jarnisy
- PascalWMR
- Messages : 328
- Enregistré le : 16 févr. 2014, 09:28
- Localisation : CONFLANS EN JARNISY (F54800)
- Contact :
Re: Date décalée sur xAsis
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
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
Météo Conflans-en-Jarnisy