Этот запрос не будет работать так, как вы планировали. Использование SUM
(которое является функцией AGGREGATE) в вашей производной таблице даст вам точную ОДНУЮ строку назад - если вы не начинаете GROUP BY
другой столбец.
В вашем примере, даже если бы вы группировали id
, вы все равно получали бы только одну строку (это потому, что вы группировали бы по одному идентификатору). Измените оператор WHERE
, чтобы включить больше идентификаторов и сгруппировать их в производной таблице.
Также обратите внимание на MySQL manual на различные функции агрегата, чтобы получить представление о том, что они делают.
С уважением
EDIT
Поскольку требования Ор имеют несколько прояснится, я постараюсь помочь ему с его запросом:
SELECT x.name, x.date, y.vol, y.val
FROM table AS x,
(SELECT MAX(date) AS date, SUM(volume) AS vol, SUM(value) AS val
FROM table
WHERE id = 12) AS y
WHERE x.id = 12,
AND x.date = y.date
Я хочу только 1 строку назад ... самое последнее имя и сумму значения и суммы тома – 2010-11-28 14:14:01