「源码示例」Access使用SQL子查询
一、问题描述:
有一个培训班学员需要针对自己工作上的问题做一下处理,对下面这张表按年月统计每个月的最大销量,每月最大销量日期,每月总销售量。
最终结果需要实现如下图效果:
二、解决方法:
实现的方法有多种,这里只考虑通过一个查询来实现需求,按年月统计“每个月的最大销量,每月总销量”这部分功能需求比较简单,按年月做一个分组汇总查询就可以实现,但难点在于如何获取对应的【每月最大销量日期】,同时又在同一个查询中就体现,可以通过SQL语句的子查询实现,供大家参考。
SQL语句:
Select Format(a.日期,"yy-mm") AS 年月, a.日期 as 最大销量日期, a.销售量 as 当月最大销量, b.总销量
FROM 日销量 AS a INNER JOIN (Select format(日期,"yy-mm") AS 月份, max(销售量) AS 最大销量, sum(销售量) AS 总销量 FROM 日销量 GROUP BY format(日期,"yy-mm")) AS b
ON a.销售量 = b.最大销量 and Format(a.日期,"yy-mm")=b.月份
三、示例下载:http://www.accessoft.com/article-show.asp?id=20149 里下载示例。