Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
après plusieurs essais, je n'arrive pas à avoir le bon résultat.
J'ai une table "appui" dans laquelle se trouvent des entités avec une colonne 'etat_appui' et une colonne 'type_pot'.
J'ai une autre table "contour_aerien" dans laquelle se trouve la colonne 'nb_appuis_bt_etudies'.
Les points de la table "appui" se trouvent dans le polygone de table "contour_aerien".
Par géométrie, je souhaite avoir le nombre de point avec les valeurs 'etat_appui'=BON et 'type_pot'=POT_BT dans le polygone de table "contour_aerien".
Sauf que j'obtiens à chaque fois 0...
Evidemment certains objets ont bien les valeurs 'etat_appui'=BON et 'type_pot'=POT_BT
CREATE OR REPLACE FUNCTION public.bt_func()
RETURNS trigger AS
$BODY$
BEGIN
select into NEW.nb_appuis_bt_etudies count(etat_appui)
from appui
where st_within(NEW.geom, appui.geom) and appui.type_pot LIKE 'POT_BT' and appui.etat_appui like 'BON';
return NEW;
END;
Hors ligne
Bonjour,
J'imagine que vous souhaitez mettre à jour l'information automatiquement lors d'une insertion ou mise à jour? Le trigger est bien déclaré BEFORE INSERT/UPDATE?
Est-ce que la requête renvoie le bon résultat en l'exécutant manuellement ?
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour,
oui je souhaite mettre à jour automatiquement. Et oui le trigger est bien BEFORE INSERT OR UDAPTE
Manuellement ? comment fait-on ?
Hors ligne
En réécrivant légèrement
select into NEW.nb_appuis_bt_etudies count(etat_appui)
from appui
where st_within(NEW.geom, appui.geom) and appui.type_pot LIKE 'POT_BT' and appui.etat_appui like 'BON';
pour que NEW.geom soit remplacé par votre géométrie (donc en sélectionnant votre ligne, avec une joinute), et en affichant le résultat plutôt qu'une clause INTO.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1