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

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

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

 

查询结果如下:

 

扩展:

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

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值