Salut à tous , je voudrai savoir si c'est possible de faire des requêtes croisées en mysql, si oui comment ? et pour terminer comment cakephp peut il réaliser cela ?? merci
J'ai pas touché à ça depuis un moment, mais j'irai surement chercher du côté de Group By et SUM
Je veux dire une requete croisé comme celui que nous propose access : faire un tableau croisé dynamique avec MySQL par exmple j'ai une table comme sa dans ma base :
exemple1:
Table ventes
+--------+---------+---------+------+
mois client montant
+--------+---------+---------+------+
janvier M.A. 2045
+--------+---------+---------+------+
janvier M.A. 123
+--------+---------+---------+------+
janvier B.H. 1034
+--------+---------+---------+------+
janvier N.S. 765
+--------+---------+---------+------+
janvier C.G. 34
+--------+---------+---------+------+
janvier E.B. 983
+--------+---------+---------+------+
fevrier M.A. 678
+--------+---------+---------+------+
fevrier B.H. 1254
+--------+---------+---------+------+
fevrier N.S. 98
+--------+---------+---------+------+
fevrier C.G. 459
+--------+---------+---------+------+
fevrier E.B. 2451
+--------+---------+---------+------+
février S.R. 34
+--------+---------+---------+------+
mars B.H. 763
+--------+---------+---------+------+
mars C.G. 896
+--------+---------+---------+------+
mars E.B. 1439
+--------+---------+---------+------+
et je veux avoir en sortie un tableau comme celui ci-dessous
exemple2:
+--------+---------+---------+------+
| client | janvier | fevrier | mars |
+--------+---------+---------+------+
| B.H | 1034 | 1254 | 763 |
| C.G | 34 | 459 | 896 |
| E.B | 983 | 2451 | 1439 |
| M.A | 2168 | 678 | 0 |
| N.S | 765 | 98 | 0 |
| S.R | 0 | 34 | 2417 |
+--------+---------+---------+------+
Hi,
D'après moi, plusieurs solutions:
1- Faire une requête avec des IF pour faire les calculs et groupe.
2- Select all, puis faire un algorithme qui fait le tri et les calculs.
Pour la première méthode, une recherche google t'aidera, j'ai trouvé une question équivalente avec une réponse utilisant les IF dans la requête.
@+
Il te faut un group by. Une piste : http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic=%2Fcom.ibm.redbrick.doc6.3%2Fssg%2Fssg34.htm