besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: vendredi 27 janvier 2012 23:20:33

Bonjour,

Besoin d'aide pour afficher dans la requête du tuto, un affichage pour une validité bien spécifique nommé "manque experience en vol"

Je me base sur cette requête ou j'ai rajouté la date d'obtention et de maturité

SELECT validity_type.name AS 'Validity',
DATE_FORMAT(subscription,'%d/%m/%Y') AS Date,
last_name AS Name,
first_name AS Firstname,
grant_date AS Obtention,
expire_date AS Expiration,
ident_value AS Comment
FROM validity_type
LEFT JOIN validity ON validity.validity_type_id =validity_type.id
LEFT JOIN person ON person.id=validity.person_id
LEFT JOIN member ON member.id=person.id
WHERE YEAR(subscription)>$year AND MONTH(subscription)>=1
ORDER BY 'Validity', Name, Firstname

Mais si je change cette ligne :
LEFT JOIN validity ON validity.validity_type_id =validity_type.id
par
LEFT JOIN validity ON validity.validity_type_id =manque experience en vol

j'ai un message d'erreur.
Si quelqu'un peut m'aider.
Merci

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: samedi 28 janvier 2012 23:11:04

Je vois mon erreur, il s'agît d'afficher dans le rapport (et non pas dans la liste des personnes via l'onglet type de validités) la liste des pilotes avec la formule d'expérience = (sumFlightHour(%PILOT,0,90,1,2,3,4,5)+sumFlightHour(%PILOT,1,90,1,2,3,4,5))<290

formule qui m'a servi à créer la validité manque d'expérience en vol dans les 90 derniers jours.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: mardi 31 janvier 2012 04:22:36

> LEFT JOIN validity ON validity.validity_type_id =manque experience en vol

Ca, c'est pas du SQL :-)

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: mercredi 21 mars 2012 22:32:30

Bonjour,

J'ai trouvé la requette dans le wiki :
sauf que le dernier vol affiché est en fait le premier vol connu. (il y a une erreur)
J'ai essayé de changer:
ORDER BY f1.start_date ASC LIMIT 1),'INCONNU') AS "Dernier Vol"
par
ORDER BY f1.end_date ASC LIMIT 1),'INCONNU') AS "Dernier Vol"

rien à faire.
une idée ?
Merci

SELECT
CONCAT(a.last_name, ' ', a.first_name) AS pilot,
IFNULL((SELECT CONCAT(DATE_FORMAT( f1.start_date, '%d/%m/%Y' ),' ', resource.name,' Durée: ',
TIME_FORMAT(SEC_TO_TIME((SUM( f1.duration )/600 - FLOOR(SUM( f1.duration )/600))*3600),'%H h %i'))
FROM flight AS f1
LEFT JOIN flight_pilot AS fp ON fp.flight_id=f1.id
LEFT JOIN resource ON resource.id=f1.aircraft_id
WHERE fp.pilot_id=a.id
ORDER BY f1.start_date ASC LIMIT 1),'INCONNU') AS "Dernier Vol"
FROM person AS a
LEFT JOIN member ON member.id=a.id
WHERE a.activated = 1 AND member.subscription = '2012-12-31'
AND a.id NOT IN (
SELECT au.id
FROM flight AS f
LEFT JOIN flight_pilot AS fp ON fp.flight_id=f.id
LEFT JOIN person AS au ON au.id=fp.pilot_id
WHERE f.airborne = 0 AND f.start_date BETWEEN NOW() - INTERVAL 90 DAY AND NOW() GROUP BY au.id HAVING SUM(f.duration)/600 > 0)
ORDER BY pilot



Modifié 1 fois. Dernière modification le 21/03/12 22:33 par Gilles.DR315.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Aeroclub PTV ()
Date: mercredi 28 mars 2012 19:59:20

Bonjour,
Moi aussi j'ai essayé d'utiliser cette requête mais effectivement elle ne donne pas le dernier vol connu. J'ai échangé des messages avec Joël Tremblet en février 2011 pour signaler le problème mais les différentes solutions suggérées n'ont rien donné.
Gardons espoir.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: claratte ()
Date: samedi 31 mars 2012 09:37:34

Bonjour,

Pourriez-vous donner le lien du paragraphe du wiki concerné où la requête apparait. Si elle est fausse, il faut qu'on la corrige.

Cordialement,

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: dimanche 1 avril 2012 18:17:44

http://doc-en.openflyers.com/index.php?title=Export_generator_3.0

dans les derniers :

Pilots without flight in the last 3 months

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: mercredi 4 avril 2012 23:41:38

La requete semble fonctionner correctement
> sauf que le dernier vol affiché est en fait le premier vol connu. (il y a une erreur)
La requete est concu pour renvoyer tous les pilotes qui n'ont pas volez depuis 3 mois et elle affiche le dernier vol connu du pilote si il y a

Mais je ne connais pas suffisamment les pilotes des clubs pour vérifier son exhaustivité
Si le résultat est incorrect merci de m'envoyer des cas précis pour que je vérifie (eventuellement par email si il y a besoin de diffuser des infos privées)



Modifié 1 fois. Dernière modification le 04/04/12 23:43 par jtremblet.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: jeudi 5 avril 2012 18:16:57

oui c'est çà

la requête marche bien, mais si on pouvait avoir le dernier vol connu

"X a volé pour la dernière fois le...."
plutôt que
"X a effectué son premier vol le ...."

merci de votre appui
j'ai essayé plusieurs correction.
Mais il semble refuser le "end"

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: claratte ()
Date: vendredi 6 avril 2012 12:53:09

Bonjour,

Dans la requête, à un moment il y a un "ORDER BY f1.start_date ASC LIMIT 1" remplacer le ASC par DESC. C'est à dire ascendant par descendant.

En effet, cette partie de requête dit "ramène-moi tous les vols en me les triant par ordre ascendant et puis finalement sort-moi uniquement le premier (LIMIT 1)".

En mettant ""ORDER BY f1.start_date DESC LIMIT 1" elle dira "ramène-moi tous les vols en me les triant par ordre descendant et puis finalement sort-moi uniquement le premier (LIMIT 1)".

Cordialement,

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: vendredi 6 avril 2012 23:55:29

Excusez moi j'avais pas compris le probleme
La requête est corrigés

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: samedi 7 avril 2012 17:11:38

merci

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: samedi 7 avril 2012 17:24:45

J'ai modifié.
Mais avec avec DESC et LIMIT 1, il renvoi au 1er vol connu au lieu du dernier vol connu



Modifié 1 fois. Dernière modification le 07/04/12 17:25 par Gilles.DR315.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Aeroclub PTV ()
Date: lundi 9 avril 2012 08:09:37

Bonjour,
Malgré la correction, c'est toujours le premier vol connu qui apparaît. De plus la durée du vol est fausse, elle est toujours de 0hxxmn. Les minutes semblent correspondrent aux minutes du total de tous les vols, mais il y a des exceptions. Je n'ai pas trouvé de logique dans ce résultat.
Pourquoi est-ce si compliqué de faire fonctionner correctement cette requête? Peut-être faut-il la revoir complètement.
Cordialement!

Max Poisson - AC Pitthiviers

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: mardi 10 avril 2012 03:38:57

Le probleme est que pour verifier il faut connaitre la valeur attendue.
Dans le cas précédent si DESC donne le meme résultat que ASC c'est qu'il n'y a qu'un vol extrait. Dans ce cas on peut l'ordonner dans l'ordre que l'on veut on aura toujours le meme résultat
Pour concevoir une telle requete c'est pas compliqué mais il faut y consacrer du temps !

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Aeroclub PTV ()
Date: mardi 10 avril 2012 17:02:31

Bonjour,
Ok, mais celui qui a conçu la requête aurait dû analyser le résultat et s'apercevoir que de donner le premier vol connu ne présentait aucun intérêt. Et quid du temps de vol qui est faux?
Pensez-vous y consacrer du temps à court terme? Il me semble que c'est une requête relativement importante pour les aéro-clubs.
Merci!

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: mardi 10 avril 2012 20:10:52

Je viens de faire l'essai avec un pilote ayant plusieurs vols à son actif, et il renvoi au 1er vol que l'on soit en ASC ou DESC

Ce n'est pas simple, et ça demande du temps en effet.

Une requête qui me parait essentielle en Aéroclub.

La liste des pilotes :
Ayant leur validité "Licence PPL"
Ayant cumulé 30h de vol dans l'année glissante sur type(s)
Ayant leur validité MED classe II dont la date d'obtention et comprise entre "jour J et J-365 jours max"

Soit : les personnes supposés habilités aux vols baptême (sans tenir compte des 200h et de l'éventuel agrément du président) impossible à définir en requête.
Parce que certains pensent être habilités alors qu'ils ne le sont pas ou plus.
Et un accident avec déchéance de garanties d'assurance çà risque gros pour un AC.



Modifié 1 fois. Dernière modification le 10/04/12 20:12 par Gilles.DR315.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: mercredi 11 avril 2012 03:14:25

Bonjour

La requête initiale à certainement été faite pour un besoin précis et elle a été réglé par la structure qui en a fait la demande, elle correspondait à son besoin
Toute requête payée par un club est ensuite mise sur le wiki, elle peut être réutilisée comme telle ou bien s'en inspirer pour un autre usage, C'est toujours ça de temps de gagné. C'est selon ce principe que le Wiki c'est enrichie.

Mais le programme évolue et ce qui était valide à un moment, peut ne plus l'être après un certain temps. Dans la mesure du possible on les corrige lorsque ceci est simple.
Dans le cas ci dessus la requête doit.être reprise (et surtout vérifiée) et cela demande du temps

Selon leur abonnement les structures disposent d'un bonus développement qui peut servir à cela. Peu de structure utilisent ces heures alors que cela ne leur coute rien
Faite nous part de votre besoin, nous vous indiquerons le temps estimé. Plusieurs clubs peuvent exprimer le même besoin, alors le temps sera partagé

>
> Une requête qui me parait essentielle en
> Aéroclub.
>
> La liste des pilotes :
> Ayant leur validité "Licence PPL"
> Ayant cumulé 30h de vol dans l'année glissante
> sur type(s)
> Ayant leur validité MED classe II dont la date
> d'obtention et comprise entre "jour J et J-365
> jours max"

Ces besoins ne sont pas l'objet de la requête dont il est question
Les conditions de totalisation d'heure sur une durée glissante peuvent être paramétrés, exemple: pilote ayant plus de 30 h dans l’année qui précède => sumFlightHour(%PILOT, 0,365)>30*600 ( voir http://doc-en.openflyers.com/index.php?title=CommonFormula)
Il suffit de créer un validité avec cette formule. Ensuite pour en obtenir la liste, il n'y a pas besoin de requête: la liste des pilotes ayant une validité est disponible dans le programme

Admin > Utilisateurs > Type de validités et clique sur l’icône dans la colonne liste sur la ligne de la validité souhaitée
Vous obtenez la liste de tous les utilisateurs correspondant à ce critère

Si il y a une date d'échéance échue, la date d'expiration apparait en rouge
La puissance de ces formules est limitée par votre imagination.
Selon le principe exposé ci-dessus: faites nous part de votre demande, nous estimerons le temps pour la programmer

>
> Soit : les personnes supposés habilités aux vols
> baptême (sans tenir compte des 200h et de
> l'éventuel agrément du président) impossible à
> définir en requête.
> Parce que certains pensent être habilités alors
> qu'ils ne le sont pas ou plus.
> Et un accident avec déchéance de garanties
> d'assurance çà risque gros pour un AC.

Impossible dans une requête mais disponible dans OF !
Si je clique dans la validité autorisation baptême tel que décrit ci dessus j'obtiens bien la liste des personnes ayant cette autorisation (sur demo.openflyers,fr)

Si vous voulez bloquer un pilote (baptême , licence,etc...) alors il vous faut un tableau de clés, le pilote déclare son vol sur le PC avant de partir et la clé est libérée seulement si toutes les conditions paramétrées (définies par le Conseil d'administration) sont réunies
Ceci est utilisé dans plusieurs clubs qui ont une armoire couplé avec OF

Cordialement
Joël

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: Gilles.DR315 ()
Date: vendredi 13 avril 2012 22:12:38

C'est ce que j'ai fait pour l'habilitation VOL Baptême. Pour la boîte à clés, nous y réfléchissons.

Dans les validités, le pilote habilité doit être repris sur les listes suivantes :

"Licence PPL / TT - SEP",
"30h de vol sur l'année glissante" dont la formule d'expérience est : (sumFlightHour(%PILOT,0,365,1,2,3,4,5)+sumFlightHour(%PILOT,1,365,1,2,3,4,5))>18000
et enfin la validité
"Certificat Médical classe 2 (Avion)"

Par contre je n'arrive pas à créer une validité ou en formule d'expérience nous avons
"Certificat Médical classe 2 (Avion)" dont la date d'obtention est entre maintenant - 365 J


Pour le rapport : j'ai mes 3 formules, mais je n'arrive pas à les cumuler pour n'en faire qu'une seule :

"Les plus de 30h sur tel types d'aéronefs" :
SELECT CONCAT(au.last_name, ' ', au.first_name) AS pilot, TIME_FORMAT( SEC_TO_TIME( SUM(f.duration)*6 ), '%H:%i' ) AS total_time
FROM flight AS f
RIGHT JOIN flight_pilot AS fp ON fp.flight_id=f.id
LEFT JOIN resource AS ai ON ai.id = f.aircraft_id
LEFT JOIN resource_type AS at ON ai.resource_type_id = at.id
LEFT JOIN person AS au ON fp.pilot_id = au.id
WHERE f.airborne = 0
AND start_date BETWEEN NOW() - INTERVAL 365 DAY AND NOW()
AND at.id IN ( 1, 2, 3, 5 )
GROUP BY au.id
HAVING SUM(f.duration)/600 > 30
ORDER BY pilot

"Certificat MED de moins d'un an"
SELECT
last_name AS Last_name,
first_name AS First_name,
validity_type.name AS 'Validity',
DATE_FORMAT(validity.grant_date, '%m-%d-%Y') AS Obtention,
DATE_FORMAT(validity.expire_date, '%m-%d-%Y') AS Expirate
FROM person
LEFT JOIN validity ON person_id=person.id
LEFT JOIN validity_type ON validity_type.id=validity_type_id
WHERE validity.grant_date BETWEEN NOW() - INTERVAL 365 DAY AND NOW()
AND validity_type.time_limitation=1
AND validity_type.name="Certificat Médical classe 2 (Avion)"
AND person.activated=1
ORDER BY
last_name,
first_name

"Avoir la licence PPL"
SELECT
last_name AS Last_name,
first_name AS First_name,
validity_type.name AS 'Validity',
ident_value As 'Ident_value',
DATE_FORMAT(validity.grant_date, '%m-%d-%Y') AS Obtention,
DATE_FORMAT(validity.expire_date, '%m-%d-%Y') AS Expirate
FROM person
LEFT JOIN validity ON person_id=person.id
LEFT JOIN validity_type ON validity_type.id=validity_type_id
WHERE validity_type.time_limitation=1
AND validity_type.name="Licence PPL / TT - SEP"
AND person.activated=1
ORDER BY
last_name,
first_name

Merci encore pour les conseils.

Options: RépondreCiter
Re: besoin d'aide pour affiner une requête "validités"
Envoyé par: jtremblet ()
Date: vendredi 13 avril 2012 23:35:11

> Par contre je n'arrive pas à créer une validité ou en formule d'expérience nous avons
> "Certificat Médical classe 2 (Avion)" dont la date d'obtention est entre maintenant - 365 J

Le programme n'est pas prévu d'utiliser la date d'obtention. OF fonctionne avec les dates de fin de validité
Il suffit de créer une validité "Médicale pour vol baptême" et de saisir une date à 1 an depuis l'obtention. Vous pourrez allors utiliser cette validité pour restreindre l'acces

Pour vos requetes si elle fonctionne toutes individuellement il suffit rassembler les condifitons avec OR
Je vous conseille de selectionner les type de validité sur les ID et non sur le name
(validity_type.id=1 OR validity_type.id=2 OR validity_type.id=3)
Pour avoir les validity_type.id il suffit de faire une requete
SELECT * FROM valdity_type

Options: RépondreCiter


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