#1 Thu 28 November 2019 20:39
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Update
Bonjour,
Je dispose d'un fichier de donnée de polygones, et une autre couche de tracés.
Dans ma couche de polygone, j'aimerais créer un nouveau champ qui contiendra la distance la plus courte séparant chaque polygone à un tracé, sur une surface tampon de 1000m entourant mes polygones.
Pour cela faire, j'ai d'abord crée ma table.
Code:
alter table polygone add column DIST_TRACE integer
Et j'implémente cette table grâce à Update
Code:
update polygone set DIST_TRACE = (select min(st_distance(polygone.geom, trace.geom)) dist from polygone p, trace where st_dwithin(polygone.geom, trace.geom, 1000) group by p.id)
Malheureusement, il me retourne l'erreur suivante :
Code:
plus d'une ligne renvoyée par une sous-requête utilisée comme une expression
J'ai du mal à comprendre la raison ....
Merci à vous
Dernière modification par preliator (Thu 28 November 2019 20:40)
Hors ligne
#2 Fri 29 November 2019 09:09
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 96
Re: Update
Bonjour,
Il doit vous manquer la condition de jointure dans votre update :
Code:
update polygone t1 set DIST_TRACE = t2.dist FROM (select pd.id, min(st_distance(polygone.geom, trace.geom)) dist from polygone p, trace where st_dwithin(polygone.geom, trace.geom, 1000) group by p.id) t2 WHERE t1.id = t2.id
Hors ligne