SELECT base.skaititajs_numurs, base.objekts_nosaukums, base.pedejais_datums, base.pedeja_vertiba, prev.prieksejais_datums, prev.priekseja_vertiba, (base.pedeja_vertiba - prev.priekseja_vertiba) AS pieaugums FROM ( -- Latest reading per counter SELECT md.number AS skaititajs_numurs, mot.old_name AS objekts_nosaukums, md.date AS pedejais_datums, md.value AS pedeja_vertiba FROM metter_data md JOIN metter_meter mm ON md.number = mm.number JOIN metter_object_temp mot ON mm.id = mot.object_id WHERE (md.number, md.date) IN ( SELECT md2.number, MAX(md2.date) FROM metter_data md2 GROUP BY md2.number ) ) base LEFT JOIN ( -- Second latest reading per counter SELECT md.number AS skaititajs_numurs, md.date AS prieksejais_datums, md.value AS priekseja_vertiba FROM metter_data md WHERE (md.number, md.date) IN ( SELECT d1.number, MAX(d1.date) AS date FROM metter_data d1 WHERE d1.date < ( SELECT MAX(d2.date) FROM metter_data d2 WHERE d2.number = d1.number ) GROUP BY d1.number ) ) prev ON base.skaititajs_numurs = prev.skaititajs_numurs;