2017-01-24 8 views
0

Я получаю неправильные данные, потому что идентификаторы не фильтруются. Можно ли получить t1.id < t2.id только для одного транспортного средства (regoznaka = OS 428-EF)?Sql CE Вычисление строк из одного столбца при фильтрации строк

SELECT 
    t2.id, 
    t2.Regoznaka, 
    t2.tocenolit, 
    max(t2.stanjekm) as km2, 
    max(t1.stanjekm) as km1, 
    max(t2.stanjekm) - max(t1.stanjekm) as Kilometara, 
    max(t1.id) as id1 
FROM Gorivo AS t1 

Right JOIN 
    Gorivo AS t2 ON t1.id < t2.id 
Where t2.regoznaka='OS 428-EF' 
Group by t2.id, t2.Regoznaka, t2.tocenolit, t2.stanjekm 
+1

'RIGHT JOIN', как же? Большинство людей находят LEFT JOIN достаточно сложными, чтобы понять, и ПРАВОЕ ПРИСОЕДИНЕНИЕ совершенно запутывает. (Например, «главная таблица слева объединяет необязательные данные» и «необязательные данные правы присоединяются к основной таблице».) – jarlh

+0

Вы присоединяетесь ко всему идентификатору ниже, чем «OS 428-EF», от левой таблицы до единственной (regoznaka = 'OS 428- EF ') справа. Вы уверены, что это то, что вы намеревались? Может быть, вы имели в виду t1.id = t2.id? Если нет, более подробная информация о том, что вы пытаетесь достичь, и значения помогут. – theblitz

+0

@jarlh Я подсчитал, сколько миль было сделано автомобилем http://imgur.com/a/EQMW0 – Josip

ответ

0

Ваша проблема заключается в том, что вы не ограничиваете строки из левой таблицы. Вам нужно применить условие к левой таблице, а также:

and t1.regoznaka='OS 428-EF' 

ИЛИ:

and t1.regoznaka = t2.regoznaka