Utilisation d'une fonction avec un simple traitement [Résolu]

Signaler
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
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?

3 réponses

Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012

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);


INSERT 0 1
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012

Tu veux bien être mon canard en caoutchouc petit forum??
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Tu veux bien être mon canard en caoutchouc petit forum??

Tu ferais définitivement mieux de dormir la nuit ^^

Et oui, pour un "INSERT SELECT" y'a le mot-clé "VALUES" qui saute (ça te fait une belle jambe que je te réponde ça aujourd'hui, hein ><)