【发布时间】:2018-05-07 17:00:20
【问题描述】:
这是我的目标: 我在空间数据库中有 2 层: - 层“abonnes”,一个具有属性“nbabonnes”的点层 - 图层“公社”,一个具有属性“nbabonnescom”的多边形图层 每次我添加一个点“abonnes”时,我想用包含新点的多边形内的所有点 abonnes 的“nbabonnes”值的总和来更新属性“nbaonnescom”。 我试过这个触发器:
CREATE TRIGGER abonnes_nw_updcommunes
AFTER INSERT
ON abonnes
BEGIN
UPDATE communes SET
"nbabonnescom" =
(
SELECT SUM(abonnes.nbabonnes)
FROM abonnes JOIN communes ON
( within(abonnes.GEOMETRY, (SELECT communes.GEOMETRY FROM communes, abonnes WHERE ST_Contains(communes.GEOMETRY, NEW.GEOMETRY))))
)
WHERE within(NEW.GEOMETRY, communes.GEOMETRY);
END;
结果几乎是正确的,但实际上,“nbabonnescom”的结果乘以“communes”多边形的数量。 例如,如果我应该获得 23,并且我有 5 个“公社”多边形,我会为 nbabonnescom 获得 115。我不明白为什么。
【问题讨论】:
标签: triggers sum spatialite