mysql查询,device_name相同,如何让10月的value减去9号的value,

select  distinct device_name,kwh as value,SUBSTR(cdate,6,2) 月份 from  view_space365_electric 

where  YEAR(cdate) = YEAR(now()) 

group by device_name,SUBSTR(cdate,6,2)

image.png

SQL 不可爱小羊 发布于 2022-10-10 14:22
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
free_zzLv6中级互助
发布于2022-10-10 14:28(编辑于 2022-10-10 15:06)

select a.device_nam,(a.value-isnull(b.value,0)) as value  from (

select  distinct device_name,kwh as value,SUBSTR(cdate,6,2) 月份 

from  view_space365_electric 

where  YEAR(cdate) = YEAR(now()) 

group by device_name,SUBSTR(cdate,6,2)

) a left join 

(

select  distinct device_name,kwh as value,SUBSTR(cdate,6,2) 月份 

from  view_space365_electric 

where  YEAR(cdate) = YEAR(now()) 

group by device_name,SUBSTR(cdate,6,2)

) b on a.device_name = b.device_name and a.月份 = b.月份+1

--where a.月份 ='10'

最佳回答
0
weibwLv7高级互助
发布于2022-10-10 14:28

你是单纯计算10-9还是说要计算10-9  9-9   8-7 这种类似的

  • 不可爱小羊 不可爱小羊(提问者) 10-9.9-8.8-7.7-6这种的
    2022-10-10 14:28 
  • weibw weibw 回复 不可爱小羊(提问者) 楼下大佬们回复你了,你可以参考free_ZZ 的答案
    2022-10-10 14:37 
最佳回答
0
我乃牛马小兵Lv5初级互助
发布于2022-10-10 14:29

select device_name,sum(case when 月份 = '10' then value else 0 end)-sum(case when 月份 = '09' then value else 0 end) as abc  from table group by device_name

  • 3关注人数
  • 290浏览人数
  • 最后回答于:2022-10-10 15:06
    请选择关闭问题的原因
    确定 取消
    返回顶部