Ты не объединяешь таблицу, ты просто делаешь подзапрос, чтобы вывести и выводишь это в колонке.
Нормальные люди объединяют таблицу при помощи JOIN. Выглядит обычно так select * from t1 inner join t2 on t1.t2id =
t2.id - как то так.
Что ты вообще хочешь сделать и какая у тебя схема?
Как правильно сделать?
use mydb;
SELECT D1.Дата, (SELECT -p.Вода-(-o.Вода) FROM Date AS p, Date AS o WHERE p.Дата = (SELECT COALESCE(max(oo.Дата), o.Дата)
FROM Date AS oo WHERE oo.Дата < o.Дата) and o.Дата = p.Дата) FROM Date AS D1 GROUP BY D1.Дата