| author : | Tony Chemit <chemit@codelutin.com> |
|---|
Réalisée en 2008-2009.
Démarrage début 2010.
On reprend les points du contrat PC020922-04-IRD-ObServeV2
requete 1 : Nombre de calée et capture journalière d'une marée
done.
requete 2 : Calendrier des opérations
TODO Il faut les colonnes du tableau a produire, trop vague.
requete 3 : Nombre de calées selon le type d’association
? [Un requete par colonne :]
Répartition des types d'association :
Sous banc libre (BL) : Toutes les calées sous BL (calee.typeBanc == 1 et sauf 11 ?) BL Avec baleine(s) : Mysticètes (Baleines) (11) activite.systemeObserve == 11 BO Avec requin(s)-baleine(s) : Requin baleine (12) activite.systemeObserve == 12 Sous épaves (BO) : Toutes les calées sous BO (calee.typeBanc == 2 et sauf 12)
Nombre de calées / systeme observe (variant) +, - , total
Select Count(a1) as r1, Count(a2) as r2, r1 + r2
From Maree m, Route r, Activite a1, Activite a2, SystemObserve so
Where
m.id = '%%'
[and so.code ='%%']
and r in elements(m.route)
and a1 in elements(r.activite)
and a2 in elements(r.activite)
and a1.calee is not null
and a2.calee is not null
and a1 != a2
and so in elements(a1.calee.systemeObserve)
and so in elements(a2.calee.systemeObserve)
and a1.calee.causeNonCoupSenne=false
and a2.calee.causeNonCoupSenne=true
GroupBy so.code
On devra calculer les totaux.
TODO A Revoir car compliqué...
requete 4 : Utilisation des DCP
Une requete par colonne :
Nombre de DCP / type objet (variant)
Select ? [of.type.code,] count(of) From Maree m, Route r, Activite a, ObjetFlottant of, OperationObject oo Where m.id = '%%' and oo.code = '%%' and r in elements(m.route) and a in elements(r.activite) and of in elements(a.objetFlottant) and oo in elements(of.operation) ? GroupBy oo.type.code
Pour la derniere requete un fait un sum sur dcp.
Select ? [of.type.code,] sum (efo.nombre) From Maree m, Route r, Activite a, ObjetFlottant of, OperationObject oo, EspeceFauneObservee efo Where m.id = '%%' and oo.code = '%%' and r in elements(m.route) and a in elements(r.activite) and of in elements(a.objetFlottant) and oo in elements(of.operation) and efo in elements(oo.especeFauneObservee) and efo.categorie.code='TORTUE' ? GroupBy oo.type.code
requete : Captures thons selon le type d’association
Un requete par colonne (pivot espece) :
From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
Select so.code, Sum( ct.poids )
Where
m.id = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and ct in elements(a.calee.captureThon)
and so in elements(a.systemObserve)
and ct.rejete=false
and ct.categoriepoids.espece.code = '%%'
groupBy so.code
La somme de chaque colonne est calculée
Pour l'avant dernier colonne :
From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
Select so.code, Sum( ct.poids )
Where
m.id = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and ct in elements(a.calee.captureThon)
and so in elements(a.systemObserve)
and ct.rejete=false
and ct.categoriepoids.espece.code NOT in ('%%%,...)
groupBy so.code
TODO Voir si le NOT IN fonctionne bien
Pour la dernière colonne, requete sans distinction espece :
From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
Select so.code, Sum( ct.poids )
Where
m.id = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and ct in elements(a.calee.captureThon)
and so in elements(a.systemObserve)
and ct.rejete=false
groupBy so.code
requete : Rejets thons selon le type d’association
From Maree m, Route r, Activite a, CaptureThon ct, SystemeObserve so
Select so.code, Sum( ct.poids )
Where
m.id = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and ct in elements(a.calee.captureThon)
and so in elements(a.systemObserve)
and ct.rejete=true
and ct.categoriepoids.espece.code = '%%'
groupBy so.code
Voir captureThon pour les deux dernières colonnes.
requete : Fréquence des tailles de rejet Thon
Pas assez de données
requete : Captures accessoires - Liste des espèces
TODO Comment savoir si banc libre ou banc sur objet
TODO Il me faut plus d'info, je comprends pas tout.
requete : Captures accessoires - Résultats par groupe d’espèces
Pour les devenirs, on doit pouvoir les sélectionner dans une liste
Pour chaque groupe espece faune, une requete par colonne
nombre (banc libre) TODO
nombre (banc objet) TODO
devenir : sorti vivant de la senne
From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
Select ef.code, Sum( cf.nombre )
Where
m.id = '%%'
and ef.groupe = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and cf in elements(a.calee.captureFaune)
and cf.espece.code = ef.code
and cf.devenir.code = 2
groupBy ef.code
- devenir : rejet vivant a la mer
From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
Select ef.code, Sum( cf.nombre )
Where
m.id = '%%'
and ef.groupe = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and cf in elements(a.calee.captureFaune)
and cf.espece.code = ef.code
and cf.devenir.code = 4
groupBy ef.code
- devenir : rejet mort a la mer
From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
Select ef.code, Sum( cf.nombre )
Where
m.id = '%%'
and ef.groupe = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and cf in elements(a.calee.captureFaune)
and cf.espece.code = ef.code
and cf.devenir.code = 5
groupBy ef.code
- devenir : partiellement conservé à bord
From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
Select ef.code, Sum( cf.nombre )
Where
m.id = '%%'
and ef.groupe = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and cf in elements(a.calee.captureFaune)
and cf.espece.code = ef.code
and cf.devenir.code = 7
groupBy ef.code
- devenir : autre
TODO Pour la colonne autre, on compte tous sauf les devenirs sélectionnés ?
From Maree m, Route r, Activite a, CaptureFaune cf, EspeceFaune ef
Select ef.code, Sum( cf.nombre )
Where
m.id = '%%'
and ef.groupe = '%%'
and r in elements(m.route)
and a in elements(r.activite)
and a.calee is not null
and cf in elements(a.calee.captureFaune)
and cf.espece.code = ef.code
and cf.devenir.code = 7
groupBy ef.code
requete :
requete :
TODO