Первое, что вы должны узнать о реляционных баз данных является то, что любая запись в таблице семантически эквивалентно другим. Я имею в виду: у вас может быть две записи в вашей таблице (2013 и 2014) ... или у вас может быть сотня из них. Итак, вы должны подумать о своем запросе в терминах таблицы с неопределенным номером записей.
Например: Запрос, который вычисляет разницу между какой-либо записи и предыдущий:
Шаг за шагом:
Список всех записей:
SELECT year, value FROM table
соединения между записями по годам:
SELECT a.year, a.value, b.year, b.value
FROM table AS a INNER JOIN table AS b ON a.year=b.year
Соединиться между записями прошлого года:
SELECT a.year, a.value, b.year, b.value
FROM table AS a INNER JOIN table AS b ON a.year=1+b.year
Наконец, разница между годом и предыдущий:
SELECT a.year, a.value, b.year, b.value, a.value-b.value
FROM table AS a INNER JOIN table AS b ON a.year=1+b.year
вы хотите '2013-100 = 1913', или' 150-100 = 50'? –
a self join with 2 aliases – Drew
@MarcB Мне нужно сделать 150-100 –