Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: vendredi 8 août 2008 10:21:34

Bonjour,

Je suis comme l'ami Pingouin, j'ai un peu de mal avec les requêtes SQL. J'en ai trouvé sur le wiki, mais qui ne présentent pas les choses aussi bien.

Y aurait-il une bonne âme qui aurait déja fait (ou qui pourrait faire pour nous) le tableau des heures de vol que nous avions sur le défunt ACCM2000, qui présentait les heures de vol avec les mois en tête de colonne et chaque avion en tête de ligne, la ligne suivante indiquant le total mensuel de tous les avions et la dernière ligne le cumul depuis le début de l'année. Enfin, le cumul par avion dans la dernière colonne.

Je joins un exemple tiré d'ACCM. Je n'ai pas trouvé comment joindre un fichier sur le forum, c'est donc un copier-coller d'une sortie PDF. Ca rend mal, il faut y voir un vrai tableau avec des lignes et des colonnes, et tout bien aligné.

Merci d'avance ! Une fois au point, je promets d'enrichir le wiki avec la formule.


AERO-CLUB DE QUIBERON
Heures de vol par mois et par avion 2007

Avion JanvFévrMarsAvriMai JuinJuilAoûtSeptOctoNoveDéceTotal

F-BXNS 10 5 18 27 27 21 35 49 43 19 17 12 283

F-GCUS 7 2 0 0 17 19 57 80 54 22 10 8 277

F-GEUB 0 6 18 52 11 24 2 0 0 0 0 0 114

F-GTVY 0 0 0 0 0 0 36 79 2 0 0 0 117

F-GVQB 0 0 0 0 0 0 0 7 17 13 17 9 62

F-HBEQ 8 3 21 34 37 35 34 35 24 15 15 7 267

F-HDAD 0 0 0 0 0 0 0 15 0 0 0 0 15

Total  26 16 57 113 92 98 165 265 139 70 58 37 1136

Cumul  26 42 99 212 304 402 567 832 971104010991136 1136

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: vendredi 8 août 2008 16:00:12

Lors de la réalisation de la requête Heures de vol par mois et par avion j'avais déjà tenté cela mais sans succès rapide, je peux y réflechir de nouveau.
Néanmoins cela n'aura pas un look suffisant pour une présentation correcte. Dans le club nous faisons ce type de présentation, en incluant des graphiques + comparaison avec l'année N-1.
Ceci est automatiquement mis à jour à partir d'un copier/coller des données issues de la requête actuelle dans un tableur et formatage par une macro

Pour avoir ceci directement d'OF il faudra attendre les états au format .pdf (vieilles discussions)

Joël

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: vendredi 8 août 2008 16:28:24

Merci Joel pour ta réponse.
Le look est peu important.
J'ai essayé de bricoler avec excel à partir de la requête publiée et des copier-coller, mais je me heurte à des problèmes bêtes de format des heures, qu'excel interprête comme des jours et heures, d'où des totaux faux.

Je suis donc preneur soit d'un tableau html même mal looké, soit d'une macro excel, bref de tout ce qui peut amener au résultat demandé ;-)

Amicalement,

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 00:28:59

Question simplicité, une macro permet de traiter le problème du formatage des heures mais j'aime pas ces solutions qui ne sont accessibles qu'à des utilisateurs experimentés. OF et la pour éviter que chacun travail dans son coin
Et puis Excel c'est pas libre !!!

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 02:35:16

Voici la requête qui remplace celle des heures de vol par avion et par mois

SELECT aircraft_id AS Num, callsign AS Immat,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1 AND aircraft_id = Num) AS Janv,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2 AND aircraft_id = Num) AS Fevr,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3 AND aircraft_id = Num) AS Mars,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4 AND aircraft_id = Num) AS Avri,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5 AND aircraft_id = Num) AS Mai,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6 AND aircraft_id = Num) AS Juin,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7 AND aircraft_id = Num) AS Juil,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8 AND aircraft_id = Num) AS Aout,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9 AND aircraft_id = Num) AS Sept,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10 AND aircraft_id = Num) AS Octo,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11 AND aircraft_id = Num) AS Nove,
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12 AND aircraft_id = Num) AS Dece,
TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') AS Total
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year
GROUP BY aircraft_id
UNION
SELECT "Total","Mois",
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12),
TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i')
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year

La formule est sur le Wiki in english

Joël

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 04:05:32

Et pour avoir les cumuls il suffit d'ajouter les lignes suivantes :

UNION
SELECT "Cumul","Mois",
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 1),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 2),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 3),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 4),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 5),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 6),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 7),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 8),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 9),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 10),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 11),
(SELECT TIME_FORMAT(SEC_TO_TIME( sum( duration ) *6 ),'%H:%i') FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 12),
$year
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: samedi 9 août 2008 07:37:51

Génial !

Pour la mise en forme, c'est exactement ce que je demandais. Eventuellement, on pourrait se passer de la première colonne avec les numéros d'avion.

Un seul problème, seuls les premiers mois s'affichent, et je n'ai aucun temps de vol à partir de mai pour chaque avion (sauf 00:00 pour US, avion désactivé). Les totaux semblent cependant exacts.

Un avis sur la question ?

Encore merci,

Sadoche
Beta testeur OF
Quiberon Air Club



Modifié 1 fois. Dernière modification le 09/08/08 07:39 par sadoche.

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 15:27:54

Pour la première colonne je ne suis pas arrivé à m'en passer elle permet de lier l'avion dans les sous-requêtes
J'avais des résultats corrects en local mais effectivement sur le serveur certaines valeurs ne s'affiche pas, comportement bizarre, on va chercher

Joël

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 15:40:38

Pour les supprimer les avions dé-activés et les faux avions, ajouter à chaque clause WHERE
AND aircraft.activated = 1 AND aircraft.non_flightable = 0

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 15:56:28

Correctif

Pour supprimer les faux avions, ajouter à chaque clause WHERE
AND aircraft.non_flightable = 0

Pour supprimer les avions dé-activés, ajouter à chaque clause WHERE
AND aircraft.activated = 1
Normalement cela n'est pas utile, s'il n'y a aucune heure dans l'année la ligne ne s'affichera pas. A l'opposé si l'on supprime les avions désactivés et que ceux-ci ont volé durant l'année, aucune heure n'apparaitra

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 16:59:55

Voici la requête modifiée, c'est pas une des plus simple pour débuter en SQL :-)

SELECT aircraft_id AS Num, callsign AS Immat,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1 AND aircraft_id = Num) AS Janv,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2 AND aircraft_id = Num) AS Fevr,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3 AND aircraft_id = Num) AS Mars,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4 AND aircraft_id = Num) AS Avri,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5 AND aircraft_id = Num) AS Mai,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6 AND aircraft_id = Num) AS Juin,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7 AND aircraft_id = Num) AS Juil,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8 AND aircraft_id = Num) AS Aout,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9 AND aircraft_id = Num) AS Sept,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10 AND aircraft_id = Num) AS Octo,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11 AND aircraft_id = Num) AS Nove,
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12 AND aircraft_id = Num) AS Dece,
CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) AS Total
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year AND aircraft.non_flightable = 0
GROUP BY order_num
UNION
SELECT "Total","Mois",
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12),
CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) AS Total
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year AND aircraft.non_flightable = 0
UNION
SELECT "Cumul","Mois",
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 1),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 2),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 3),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 4),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 5),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 6),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 7),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 8),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 9),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 10),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 11),
(SELECT CONCAT(FLOOR(SUM( duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( duration )/600 - FLOOR(SUM( duration )/600))*3600),'%i')) FROM flight WHERE YEAR(start_date)= $year AND MONTH(start_date)<= 12),
$year
FROM flight
LEFT JOIN aircraft ON aircraft.id = flight.aircraft_id
WHERE YEAR(start_date)= $year AND aircraft.non_flightable = 0

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: samedi 9 août 2008 18:00:18

Wouah, ça commence à être joufflu, comme requête !

Un p'tit problème, il me manque un avion ; je sais bien que les moteurs Thielert ont pas la côte en ce moment, mais le DA 40 F-GVQB a totalement disparu ... et ses hv ne sont pas comptabilisées !
Une idée ?

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: claratte ()
Date: samedi 9 août 2008 19:53:42

Bonjour,

Pensez à mettre vos requêtes SQL sur le wiki ( http://wiki.openflyers.org/index.php/Stat_generator ) afin qu'elles puissent bénéficier à tous !

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: samedi 9 août 2008 22:58:50

C'est un problème dans votre base de donnèes, il y a des numéro d'ordre identique sur le US, UB, QB et DN, tous a -1
Essayez de déplacer l'ordre de vos avions avec les flèche haut/bas à droite dans la liste des avions. Mais je crains que cela ne fonctionne pas -> bug, on rectifiera cela. Je pense que l'incrément ne ce fait pas correctement lors de la création des avions

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: FredericV ()
Date: lundi 11 août 2008 15:30:44

Super ! la requête...

FredericV

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: lundi 11 août 2008 15:52:59

Merci Fréderic, je suis bien content que ma demande serve à d'autres.

Pour répondre à Joel,
>C'est un problème dans votre base de donnèes, il y a des numéro d'ordre identique sur le US, UB, QB et DN, tous a -1
Essayez de déplacer l'ordre de vos avions avec les flèche haut/bas à droite dans la liste des avions. Mais je crains que cela ne fonctionne pas -> bug, on rectifiera cela. Je pense que l'incrément ne ce fait pas correctement lors de la création des avions

Les numéros d'ordre que me donne la requête en 1ère colonne sont tous différents :
1 F-GCUS
12 F-GTVY
10 F-HBEQ
3 F-BXNS
mais il me manque toujours F-GVQB ...
J'ai essayé de déplacer l'ordre des avions, c'est idem.

Merci de voir ça si tu as une minute.

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: mardi 12 août 2008 03:25:28

La requête de réordonnancent a été faite maintenant cela doit être OK

La colonne de tête c'est l'id de l'avion, celui la est forcement unique, la colonne order_num c'est celle qui ordonne les avions pour que l'affichage soit fonction du choix du club, c'est elle qui comportait des doublons et qui ne permettait pas de faire la distinction de chaque avion

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: mardi 12 août 2008 13:28:59

Ya un os, et il est plus dur qu'il ne parait ;-)

J'ai été pêcher la requête modifiée sur le wiki, l'ai recopiée sur mon OF, mais j'ai toujours le même problème : manque un avion, le DA 40.

Des idées ?

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: jtremblet ()
Date: mercredi 13 août 2008 00:40:29

La requête de ré arrangement n'avait pas été faite donc c'etait normale qu'il n'y ai pas de changement
J'ai repris l'ordre de vos avions et cela doit être bon

Joël

Options: RépondreCiter
Re: Requête SQL pour les heures de vol avec cumul mensuel et annuel
Envoyé par: sadoche ()
Date: mercredi 13 août 2008 08:10:55

Yess !!!

Ca marche nickel, super-Joel a fait du super-boulot, et je retrouve mes chiffres comme avant avec les cumuls, si importants pour nous qui avons une activité encore plus saisonnière que les clubs des grandes villes.

Encore merci !

Si d'autres clubs sont intéressés, il faut utiliser la requête que Joel a mise sur le wiki, et pas celles de ce post, qui ne sont pas finalisées.
http://wiki.openflyers.org/index.php/Stat_generator

Bonne journée

Sadoche
Beta testeur OF
Quiberon Air Club

Options: RépondreCiter


Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
This forum powered by Phorum.