SQL语句求两行数据之间的差值

时间:2024-04-06 18:41:04

SQL语句求两行数据之间的差值

需求是这样的,下面的一组数据,是从设备里面读出来的,这个是一个累积计数,以135.252.126.57这个设备计算,08/18日计数是20245,08/19日读取时20245,说明在这个时间区间内读数没有变化。如果是多个设备,如何通过sql查询出来?

SQL语句求两行数据之间的差值             

解决办法:

首先是要把数据从列转成行表达的方式。

这里主要是使用了select * from (TableA,TableB), TableA进行一次筛选,TableB进行一次筛选,然后通过TableA,TableB的关键字组合起来,从而获得想要的结果

语句如下:

select tablea.ip,tablea.importdate,tablea.Counterfull,tablea.Countertwin,tableb.Counterfull,tableb.Countertwin,(tablea.Counterfull+tablea.Countertwin-tableb.counterfull-tableb.Countertwin) as ColorDiff,tablea.counterblack,tableb.Counterblack,(tablea.Counterblack-tableb.Counterblack) as BlackDiff

from (select * from PrinterCounter where CONVERT(nvarchar(100),ImportDate,23)='2020-08-19') as tablea,

(select * from PrinterCounter where CONVERT(nvarchar(100),ImportDate,23)='2020-08-18') as tableb

where tablea.ip=tableb.ip

 

查询结果如下:

SQL语句求两行数据之间的差值

 

扩展:

如果用Lambda的话,可能要先构造两个查询导入到list中,然后通过list对比。等以后遇到再测试吧