HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 juin 2012
-
27 mars 2012 à 18:26
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
29 mars 2012 à 11:11
Bonsoir,
je veux créer un champ dans ma table "résultats" qui contiendra des infos obtenues grâce à une fonction (par exemple shortest_path_shooting_star, disons SPSS) de pg_routing.
Mes infos sont:
-la somme des coûts (jusqu'ici tout va bien, cost étant une colonne renvoyée par SPSS)
-la réunion des multilines, alias "the_geom from ways where gid in edge_id" où edge_id est une autre colonne renvoyée par SPSS, et 'ways' est une autre table!!!
J'ai essayé des trucs comme ça:
INSERT INTO testRendering(name, size, way)
values ('ABIGROAD_test',
(SELECT sum(s.theCost) as size, ST_UNION(ww.the_geom) as way
FROM ways ww, (select edge_id as edgeID, cost as theCost
from shortest_path_shooting_star(...) s
where ww.gid in (s.edgeID)));
L'erreur est " subquery must return only one column"
Je ne veux pas lancer plusieurs fois la fonction (qui peut prendre plusieurs minutes) et j'aimerais éviter de passer par des appels intermédiaires pour des raisons évidentes de performance;
J'ai aussi essayé de commencer par des where pour définir des paramètres mais ça ne fonctionne pas du tout...
Quelqu'un peut-il m'aider, SVP?
A voir également:
Utilisation d'une fonction avec un simple traitement
HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 juin 2012 28 mars 2012 à 11:00
Eh bien la nuit porte conseil, et il fallait juste ne pas mettre values;
ce qui donne
INSERT INTO testRendering(name, size, way)
SELECT 'AUNIQUENAME' as name, sum(s.theCost) as size, ST_UNION(ww.the_geom) as way
FROM ways ww, (select edge_id as edgeID, cost as theCost from shortest_path_shooting_star(......) s where ww.gid in (s.edgeID);