Utilisation d'une fonction avec un simple traitement

Résolu
HSylvio
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012
- 27 mars 2012 à 18:26
cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Derniè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?

3 réponses

HSylvio
Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 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);


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

28 mars 2012 à 11:06
Tu veux bien être mon canard en caoutchouc petit forum??
0
cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
29 mars 2012 à 11:11
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 ><)
0