Syntaxe d'une requete SQL pour Statistique
Envoyé par: FredericV ()
Date: mercredi 9 avril 2008 10:00:13

Bonjour,

Je me suis inspiré de la doc du Wiki pour composer une stat sur les types d'heures de vol par mois (j'ai ajouté la notion de mois, c'est plus sympa).
J'obtiens :
SELECT MONTH(start_date) AS Month, ft.name AS Type_vol, IF ((SELECT COUNT(*) FROM flight_pilot fp2 WHERE fp2.flight_id=fp.flight_id AND fp2.num=1)=0, 'Solo', 'Double') AS DC, 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 flight_type ft ON ft.id & flight.flight_type_id LEFT JOIN flight_pilot fp ON fp.flight_id=flight.id WHERE YEAR( start_date ) = $year AND fp.num=0 GROUP BY month, ft.id, DC HAVING (Name <> 'Instruction' OR DC <> 'Double') ORDER BY month, order_num ASC

Mais j'ai un souci, le total des heures est faux, il m'en manque.
Le total par période est différent de celui que j'obtiens avec d'autres requêtes (répartition hommes/femmes par exemple) au même endroit.
N'ayant pas trop d'info sur la struture des bases, il m'est difficile de vérifier la requête.
Si quelqu'un a une idée...

Merci d'avance

Frederic VACHON
Aero-Club du POITOU
LFBI
frederic.vachon@laposte.net

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: jcheng ()
Date: mercredi 9 avril 2008 17:25:47

Les heures qu'il vous manque sont des heures en vol d'instruction.

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: jcheng ()
Date: mercredi 9 avril 2008 17:28:56

Voici une correction (suppression de la clause HAVING) :

SELECT
ft.name AS Type_vol,
IF ((SELECT
COUNT(*)
FROM flight_pilot fp2
WHERE fp2.flight_id=fp.flight_id
AND fp2.num=1)=0, 'Solo', 'Double') AS DC,
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 flight_type ft ON ft.id & flight.flight_type_id
LEFT JOIN flight_pilot fp ON fp.flight_id=flight.id
WHERE YEAR( start_date ) = $year
AND fp.num=0
GROUP BY
ft.id,
DC
ORDER BY order_num ASC

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: FredericV ()
Date: jeudi 10 avril 2008 07:39:29

Merci,

J'obtiens bien Instruction / Double en plus.
Par contre, cette fois ci je me retrouve avec ... trop d'heures
Le pb vient donc du nombre de cases cochées au moment de la saisie.
Parfois 1 (navigation), parfois 2 (local / instruction), quelquefois 3 ! (vol de nuit double / instruction / navigation)
Je ne sais pas trop comment avoir des chiffres cohérents avec les autres stats...

Frederic VACHON
Aero-Club du POITOU
LFBI
frederic.vachon@laposte.net

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: jtremblet ()
Date: jeudi 10 avril 2008 14:02:23

Ce cas est malheureusement du au parametrage des type de vols

Il y a deja eu une discussion sur ce sujet http://forums.openflyers.org/read.php?2,2294

Pour une exploitation correcte des statistiques il faut encadrer strictement les possibilités offertes aux pilotes afin qu'il ne soit pas possible d'avoir deux types de combinaisons. Ceci revient à mettre tout type de vol incompatible avec les autres.
Reste le problème instruction qui n'est pas parametrable par ce moyen, par conception il peut être avec tout type de vol. J'ai codé un artifice qui ignore ce type de vol, la ligne a disparu

Joël

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: claratte ()
Date: jeudi 10 avril 2008 21:59:11

Je ne suis pas d'accord et je l'ai deja dit. L'informatique n'a pas pour but de restreindre les possibilites sous pretexte que les gens qui les exploitent ne savent pas les exploiter. A nous (tous) de proposer les requetes SQL d'extraction qui vont bien.

Je n'ai pas la reponse a ces requetes et je souhaiterais ne pas avoir a chercher cette reponse.

Par contre, pour avoir fait un tout petit peu de mathematiques en ecole primaire et avoir etudie les ensembles, il ne me parait pas insurmontable de faire ressortir des chiffres corrects lorsqu'il y a des unions. Vous savez les cardinaux, des groupes distincts et des unions...

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: jtremblet ()
Date: vendredi 11 avril 2008 00:09:12

Quand les données ne sont pas dans la base aucune requête ne pourra les extraire
Le comptes des heures dépend de la façon que les pilotes renseignent le type de vol
S'ils n'ont renseigné ni local ni navigation, ce que le programme autorise, on ne peut pas faire cette répartition.
Une requete plus complete ne peut que calculer :
- les heures cochées en local,
- les heures cochées en navigation
- les heures qui sont ni local, ni navigation

Mais a quoi sert des statistiques si on laisse des heures sans affectation qu'il faudra ensuite répartir au pif !!!

Le calcul des statistique 2007 pour l'ACJP m'a demandé 2 soirs de travail pour corriger les données en base de données pour un résultat approximatif. Ces corrections ne pourront pas être faites pour 2008, il est essentielle de limiter les erreurs de saisie le plutôt possible.

Ceci est un bug d'OF qu'une ligne de code corrige en attendant un traitement adéquate

Joël

Options: RépondreCiter
Re: Syntaxe d'une requete SQL pour Statistique
Envoyé par: claratte ()
Date: vendredi 11 avril 2008 08:41:24

Il ne faut pas mélanger "obligation" et "interdiction".

On peut obliger à renseigner au moins un type de vol, par contre interdire plusieurs types de vol à la fois n'a pas forcément de sens. Or, ce fil traite de la répartition d'un vol sur plusieurs types de vols.

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter


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