Кроме столбцов ' days ' и 'потреблено', выведите результат, используя group by в качестве CTE,
With cte as
(
Select id_hw, min (data) Mindata,max(data) maxdata,
From Maintable
Group by Id_hw
)
Затем добавьте коррелированный подзапрос в операторе select прохода CTEId_hw и max date, чтобы получить максимальное значение lampada для id_hw, аналогично передайте id_hw и min date, возьмите разницу между ними.
Select *,datediff(day,Maxdata,Mindata)[_days_],
(select lampada from maintable where id_hw=CTE.id_hw and date=CTE.Maxdata)-(select lampada from maintable where id_hw=CTE.id_hw and date=CTE.Mindata) Consumed
from cte