SELECT
t.Date,
t.Val,
COALESCE((SELECT Val FROM Table1 sq WHERE sq.Date < t.Date ORDER BY sq.Date DESC LIMIT 1), 0) + t.Val AS whatever
FROM
Table1 t
ORDER BY t.Date
- Voir ça fonctionner en direct dans un sqlfiddle
Question
En supposant que j'ai quelque chose comme ceci:
Table mysql
Date | Val
2013/11/22 | 2
2013/11/23 | 4
2013/11/25 | 12
2013/11/30 | 28
2013/12/02 | 2
J'ai besoin d'une requête pour obtenir une autre colonne la somme de la valeur de la ligne "actuelle" plus la valeur de la ligne précédente. Avec l'exemple, le résultat serait quelque chose comme ceci:
Date | Value | Total
2013/11/22 | 2 | 2
2013/11/23 | 4 | 6 <--- Because 4+2 = 6
2013/11/25 | 12 | 16
2013/11/30 | 28 | 40
2013/12/02 | 2 | 30
Le problème est que je ne peux pas utiliser les variables parce que je suis sur une vue.
Comment puis-je faire ceci ?
Toute aide est appréciée.
La solution
SELECT
t.Date,
t.Val,
COALESCE((SELECT Val FROM Table1 sq WHERE sq.Date < t.Date ORDER BY sq.Date DESC LIMIT 1), 0) + t.Val AS whatever
FROM
Table1 t
ORDER BY t.Date