Vous n'êtes pas identifié(e).
Pages : 1
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
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
D'accord, mais supposons qu'il y a des milliers d'enregistrements...?
Hors ligne
Il faudrait un peu développer votre problème, car je ne vois pas le soucis.
Guillaume.
Hors ligne
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
Hors ligne
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
Pages : 1