try:
Select * from 表 a
where 日期 in (Select top 2 日期 from 表 where 表号 = a.表号 oder by 日期 desc)
order by 表号,日期
Select * from 表 a
where 日期 in (Select top 2 日期 from 表 where 表号 = a.表号 oder by 日期 desc)
order by 表号,日期
from (
select top 1 * from 表 order by 日期 desc --最后一笔
) a,(
select top 1 * from 表 where 日期<>(select max(日期) from 表) order by 日期 desc --倒数第二笔
) b
,最一次读数=a.data
,倒数最后一次读数=b.data
from(
select meterid,data from 表 a where id=(select top 1 id from 表 where meterid=a.meterid order by date desc)
) a inner join (
select meterid,data from 表 a where id=(select min(id) from(select top 2 id from 表 where meterid=a.meterid order by date desc)a )
) b on a.meterid=b.meterid
where id in (Select top 2 id from 表 where meterid = a.meterid oder by date desc)
order by meterid,date
注意一定要cast([date] as datetime) 应为你是字符类型。
(Select top 2 id from 表 where meterid = a.meterid oder by date )
order by meterid
(Select 读数 from tableName b where 日期 = (Select max(日期) from tableName where 表号 = b.表号)) as 第二次读数,
(Select 读数 from tableName c where 日期 = (Select min(日期) from tableName where 表号 = c.表号) and 日期 in (Select top 2 日期 from tableName where 表号 = c.表号) ) as 第一次读数,
from tableName
order by 表号,日期