查询综合应用
统计本月最大与上月最大值之差
2017-06-28 17:06:06

有这样一个问题:做一个抄表查询,资料表是每天记录一笔能耗累积值,如何做个查询上月最大值与本月最大值之差。原始记录以下

2017-5-1    1002017-5-30    2002017-6-1    15002017-6-31  22002017-7-31  42002017-8-31  6500

查询结果格式如下月份               能耗2017-6月       20002017-7月      20002017-8月      2300 方法一:

导入access,一步搞定MsgBox DMax("能耗", "表1", "DatePart('m', 日期) = '6'")-DMax("能耗", "表1", "DatePart('m', 日期) = '5'")'6月最大能耗与5月最大能耗的差,其余类推!

方法二:

select A.月份,B.当月最大-A.当月最大 as 差额 from

(SELECT Max(表1.数量) AS 当月最大, Month([日期]) AS 月份

FROM 表1

GROUP BY Month([日期])) AS A

left join(

SELECT Max(表1.数量) AS 当月最大, Month([日期])-1 AS 月份

FROM 表1

GROUP BY Month([日期])) AS B

on A.月份=B.月份

方法三:

select format(DateSerial(year(a.月份), Month(a.月份), 1),'yyyy-m月') as 日期,max(a.能耗)-(select max(b.能耗) from 表1 as b where DateSerial(year(a.月份), Month(a.月份), 1)=DateSerial(year(b.月份), 1+Month(b.月份), 1)) as 结果from 表1 as awhere format(a.月份,'yyyy-m')<>(select format(min(月份),'yyyy-m') from 表1) group by DateSerial(year(a.月份), Month(a.月份), 1)