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
Rejoignez-nous