Bonjour à tous,
J'espère respecter les règles relatives à ce forum, dans le cas contraire je me ferais une joie de corriger mon message.
Mon problème concerne une requête que je n'arrive pas à réaliser, je ne sais pas si c'est possible en fait... Je suis sur une base Oracle, mais je ne pense pas que ce soit spécifique à cette SGBD.
Voici mon problème :
J'ai une table qui recense les mouvements de points pour des clients identifiés dans la table par un id. Ces mouvements de points sont datés. Voici un exemple de ma table :
Je voudrais de cette table sortir une requête qui afficherais un tableau tel que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 id_cli mvt date type ----------------------------------------------------- 00001 10 01/01/2000 PTR 00002 580 02/01/2000 PTR 00002 -5 02/01/2000 GIS 00001 235 02/01/2000 TBL 00001 45 05/01/2000 PTR 00002 -10 07/01/2000 GIS 00001 -5 12/01/2000 EXP 00002 -30 20/01/2000 EXP 00002 -12 20/01/2000 EXP 00001 -70 20/01/2000 EXP 00001 -5 20/01/2000 GIS
Où pts1 et pts2 proviendraient des requetes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 id_cli pts1 pts2 ------------------------------------- 00001 245 -70 00002 575 -42
En résumé je voudrais avoir une colonne qui affiche l'id de chaque client, puis une colonne qui affiche le cumul de ses transactions de points en + ou en - jusqu'au 05/01/2000 tous types confondus puis enfin une colonne qui affiche le cumul des transactions de type EXP le 20/01/2000.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select sum(mvt) as pts1 from matable where date < 05/01/2000 ; select sum(mvt) as pts2 from matable where date = 20/01/2000 and type ='EXP' ;
Voilà, j'ai tourné le souci dans tous les sens, avec des JOIN, des requetes imbriquées... mais sans succès (je ne suis pas spécialiste non plus...).
Merci d'avance pour votre aide !
Bennybeams
Partager