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
- نرى أنها تعمل على الهواء مباشرة في sqlfiddle
سؤال
على افتراض أن لدي شيئًا كهذا:
جدول MySQL
Date | Val
2013/11/22 | 2
2013/11/23 | 4
2013/11/25 | 12
2013/11/30 | 28
2013/12/02 | 2
أحتاج إلى استعلام للحصول على عمود آخر ، مجموع قيمة الصف "الحالي" بالإضافة إلى قيمة الصف السابق. مع المثال ، ستكون النتيجة شيئًا من هذا القبيل:
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
المشكلة هي أنه لا يمكنني استخدام المتغيرات لأنني على منظر.
كيف يمكنني أن أفعل هذا ؟
أي مساعدة موضع تقدير.
المحلول
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