mysql join两个表获取12个月前的最新日期和值以及最近的日期和值

wwodge7n  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(139)

我有两个表,产品表和抄表表,由序列号连接,我想显示产品表中的所有机器,以及抄表表中最近的抄表和日期,也就是最近的日期和12个月前的抄表。
我有这样的查询,但没有得到正确的日期和 Jmeter 读数从12个月前。

select a.Model,a.SerialNumber,a.UnitNumber,a.RecentMeterRead,a.RecentMeterReadDate,b.MeterRead12MonthAgo,b.MeterRead12MonthAgoDate,(a.RecentMeterRead-b.MeterRead12MonthAgo)/12 AS HourByMonth 
from
(select s1.ITEMCODE AS Model,s1.SERIALNUMBER as SerialNumber,s1.UNITNUMBER as UnitNumber,
max(s9.METERREAD) as RecentMeterRead,max(s9.METERREADDATE)as RecentMeterReadDate
FROM wk001.serf01 s1  
left join wk001.serf09 s9 
on s1.SERIALNUMBER=s9.SERIALNUMBER 
where  s1.BILLTOCUSTOMERCODE='02366'
group by s1.SERIALNUMBER
order by s9.METERREADDATE desc ) as a 

 left outer join 

(select s1.SERIALNUMBER,
s9.METERREAD as MeterRead12MonthAgo,s9.METERREADDATE as MeterRead12MonthAgoDate
FROM wk001.serf01 s1  
left join wk001.serf09 s9 
on s1.SERIALNUMBER=s9.SERIALNUMBER 
where  s1.BILLTOCUSTOMERCODE='02366'
group by s1.SERIALNUMBER
having s9.METERREADDATE<=date_sub(max(s9.METERREADDATE),interval 12 month)
order by s9.METERREADDATE desc) as b
on  a.SERIALNUMBER=b.SERIALNUMBER 
group by a.SERIALNUMBER
order by a.RecentMeterReadDate desc,b.MeterRead12MonthAgoDate DESC;

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题