... | ... | @@ -71,4 +71,65 @@ SELECT |
|
|
FROM sysma.sysma_action
|
|
|
WHERE contracts::TEXT = ilike '%"CT EAU (2021-2023)"%' -- c'est une des façons d’exécuter le filtre en SQL
|
|
|
```
|
|
|
* Pour avoir les actions rattachées au moins au contrat CT EAU (2021-2023) et programmées en 2022
|
|
|
```sql
|
|
|
-- NOTION : CLAUSE WHERE suite...
|
|
|
SELECT
|
|
|
sysma_action_id, sysma_action
|
|
|
FROM sysma.sysma_action
|
|
|
WHERE contracts::TEXT ilike '%"CT EAU (2021-2023)"%' -- c'est une des façon d'executer le filtre en SQL
|
|
|
AND program_year = 2022; -- année de programmation
|
|
|
```
|
|
|
* Récupération des géométries des objets et affichage de la couche dans QGIS
|
|
|
|
|
|
```sql
|
|
|
-- Notions :
|
|
|
-- # CTE (instruction WITH)
|
|
|
-- # Alias (mot clé AS)
|
|
|
-- # Jointure (Instruction JOIN .. ON(...))
|
|
|
WITH
|
|
|
actions as ( -- filtre sur nos actions
|
|
|
SELECT
|
|
|
sysma_action_id, sysma_action, sysma_action_type_id, program_year
|
|
|
FROM sysma.sysma_action
|
|
|
WHERE contracts::TEXT ilike '%"CT EAU (2021-2023)"%' -- c'est une des façon d'executer le filtre en SQL
|
|
|
AND program_year = 2022
|
|
|
)
|
|
|
, id_object_lists AS ( -- recuperation de la liste des id_object liés aux actions selectionnées
|
|
|
SELECT
|
|
|
a.sysma_action_id
|
|
|
, a.sysma_action
|
|
|
, a.sysma_action_type_id
|
|
|
, a.program_year
|
|
|
, loa.sysma_object_id
|
|
|
FROM actions a
|
|
|
JOIN sysma.l_sysma_object_sysma_action loa ON (a.sysma_action_id = loa.sysma_action_id) -- jointure sur les sysma_action_id
|
|
|
)
|
|
|
|
|
|
, selected_objects AS ( -- recupération de la geometrie des objets
|
|
|
SELECT
|
|
|
idol.* -- '*' = toutes les colonnes de idol
|
|
|
, st_buffer(o.geom, 2)::geometry(polygon, 2154) -- toutes les géometries sont transformée en surfacique pour n'obtenir qu'une couche)
|
|
|
FROM id_object_lists idol
|
|
|
LEFT JOIN sysma.sysma_object o on (o.sysma_object_id = idol.sysma_object_id) -- jointure sur les sysma_object_id
|
|
|
)
|
|
|
|
|
|
, selected_objects_with_action_type_alias AS (
|
|
|
SELECT
|
|
|
aty.sysma_action_type_alias
|
|
|
, aty.sysma_action_type
|
|
|
, so.*
|
|
|
|
|
|
FROM selected_objects so
|
|
|
LEFT JOIN sysma.sysma_action_type aty ON (aty.sysma_action_type_id = so.sysma_action_type_id)
|
|
|
|
|
|
)
|
|
|
-- Contrcuction de la table finale avec ajout d'un identifiant unique (gid)
|
|
|
|
|
|
SELECT row_number() over() as gid
|
|
|
, sowaty.*
|
|
|
|
|
|
FROM
|
|
|
selected_objects_with_action_type_alias sowaty
|
|
|
```sql
|
|
|
# 3.4 Un exemple concret : générer un Atlas bilan annuel des travaux |
|
|
\ No newline at end of file |