PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 31/10/2009 20:13:03

martinf
Membre

Somme de deux enregistrements

Bonjour

À partir de la table suivante:

id, source, target, prix
1, 22, 23, 400
2, 23, 24, 1000
3, 25, 26, 500


Comment faire la somme de deux enregistrements dont la source est le target d'un autre ou l'inverse)?

(somme de id 1 et 2 avec comme résultat un seul enregistrement)?

Merci

Martin F

Hors ligne

#2 31/10/2009 20:19:16

gleu
Administrateur

Re : Somme de deux enregistrements

SELECT s.prix+t.prix AS somme
FROM table as s, table as t
WHERE s.source=t.target
AND s.id=1
AND t.id=2

Guillaume.

Hors ligne

#3 31/10/2009 20:22:13

martinf
Membre

Re : Somme de deux enregistrements

D'accord, mais supposons qu'il y a des milliers d'enregistrements...?

Hors ligne

#4 01/11/2009 00:06:37

gleu
Administrateur

Re : Somme de deux enregistrements

Il faudrait un peu développer votre problème, car je ne vois pas le soucis.


Guillaume.

Hors ligne

#5 01/11/2009 20:09:24

martinf
Membre

Re : Somme de deux enregistrements

Oui, j'avais simplifié à l'extrême mais en réalité mon problème est plus complexe. Je travail avec l'extension PostGIS, mon problème et donc... géographique. Je dois joindre des lignes qui se touchent mais arrêter la jointure à la rencontre d'une troisième ligne. Donc, on joint deux lignes par le source de l'un et le target de l'autre à condition que ces sources et targets comptent un total de 2 (dans l'image jointe, on exclu le source-target 27 dans la jointure de 2 lignes pcq'on le retrouve plus de 2 fois (intersection)
Merci

Martin F

merge.jpg

Hors ligne

#6 02/11/2009 10:02:19

Marc Cousin
Membre

Re : Somme de deux enregistrements

Pas évident comme problème, et à mon avis assez peu 'relationnel'. J'entends par là qu'il s'agit plutôt d'opérations de type 'graphe'. Vous aurez certainement plus vite fait d'en faire une procédure PL. Vous voulez factoriser votre graphe ?


Marc.

Hors ligne

Pied de page des forums