Bonjour,
Si j'ai bien tout
Jean-Paul Argudo/ = 20 Septembre, 2006 - 09:23
Bonjour,
Si j'ai bien tout compris à votre problème, l'astuce consiste à utiliser une requête en UNION sur l'ensemble de vos vues. Je prends par principe que la date est unique dans chacune des vues (si ce n'est pas le cas, la requete ci-dessous va faire des sommes des valeurs...)
Soit 3 vues que vous voulez joindre dans une seule et même requête, en ligne (l'exemple est adaptable à n vues):
select madate, sum(v1), sum(v2), sum(v3)
from
(
select date madate, valeur V1, 0 v2, 0 v3
from vue1
UNION
select date, 0, valeur, 0
from vue2
UNION
select date, 0, 0, valeur
from vue3) foo
group by madate;
L'alias des colonnes n'est utile que sur le 1er SELECT.
N'hésitez pas à revenir sur le forum si ce n'est pas exactement ce que vous vouliez.
Cordialement,
--
Jean-Paul ARGUDO
www.dalibo.com
[ Vous devez
vous connecter pour poster des commentaires ]
Bonjour et merci pour votre r
jduv/ = 20 Septembre, 2006 - 11:16
Bonjour et merci pour votre réponse,
En fait, ce que je cherche à faire est un genre de concatenation des vues en une seule en ne conservant qu'une seule des colonnes date puisque ce sont toutes les mêmes qlq soit la vue.
La vue finale aurait donc le même nombre de lignes que les autres vues.
Je ne sais pas s'il est trés judicieux de vouloir faire cela en SQL mais c'est le genre de question que je me pose souvent. La manipulation du résultat de requêtes SQL doit elle se faire en php via des tableaux ou peut on imaginer le faire en sql sachant que le but final est d'enregistrer le résultat dans un fichier csv.
J'ai eut l'occasion de vérifier que le traitement par Postgresql est jusque là (d'aprés moi et moi seul) toujours plus rapide que le même fait en php, mais je n'ai pas beaucoup des cas différents pour l'affirmer.
Est il adéquat de créer des vues via un script php et de les supprimer ensuite ou faut il mieux stocker le résultat de chacune des requêtes SQL dans des tableaux php ?
Sachant que dans ce cas précis j'utilise des vues qui sont crées via une requête suffisemment complexe (au moins pour moi) à partir desquelles je refait une autre requête tout aussi complexe. et que je le même enchainement en une seule et même requete est peut être faisable mais devient assez indigeste au niveau comphéhension.
[ Vous devez
vous connecter pour poster des commentaires ]
Donc tu fais une vue depuis 3
sparky/ = 20 Septembre, 2006 - 10:55
Donc tu fais une vue depuis 3 vues ? Il vaut mieux vérifier l'utilisation des index sur date_j
La syntaxe est correcte, tu pourrais aussi faire
select view1.date_j,view1.val,view2.val,view3.val
from view1 join view2 using (date_j) join view3 using (date_j)
[ Vous devez
vous connecter pour poster des commentaires ]
Soyons clair, les vues sont l
sparky/ = 20 Septembre, 2006 - 16:46
Soyons clair, les vues sont là pour facilier le code, donc à ne pas utiliser à tort et à travers mais à utiliser à bon escient...
[ Vous devez
vous connecter pour poster des commentaires ]