Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

分步法实现复杂查询(基本不用SQL语句)

时 间:2014-06-24 17:29:56
作 者:半夜罗   ID:36948  城市:成都
摘 要:不用SQL语句,利用设计视图实现复杂查询。
正 文:

     SQL语句说起来不难,但象我这样连英文字母都写不好的人来说还是有一定的难度。所以一般查询设计都是在设计视图中完成。设计视图中要设计出复杂查询,是不可能的。所以我想能不能用比较容易的方法呢?答案是肯定的。只用一个简单的连接单词   “union” ,即可实现。其实我连“union”是什么意思都不知道。但经过听一些视频总结,此法还行。

查询1

Select "累计" AS 日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.小组;

查询2

Select 记录表.日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.日期, 记录表.小组;


查询3

Select "累计" AS 日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.小组
UNION

 Select 记录表.日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.日期, 记录表.小组;


通过向导建立交叉表查询  查询4

TRANSFORM Sum(a.数据) AS 数据
Select a.日期, Sum(a.数据) AS 合计
FROM 查询3 AS a
GROUP BY a.日期

PIVOT a.小组;


将查询4中的红色部分用查询3的代码替换 查询5

TRANSFORM Sum(a.数据) AS 数据
Select a.日期, Sum(a.数据) AS 合计
FROM (Select "累计" AS 日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.小组


UNION Select 记录表.日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.日期, 记录表.小组
)  AS a
GROUP BY a.日期
PIVOT a.小组;


将查询5中的绿色部分替换,目的是能按日期排序  查询6

TRANSFORM Sum(a.数据) AS 数据
Select Format(a.[日期],"yyyy/mm/dd") AS 日期, Sum(a.数据) AS 合计
FROM (Select "累计" AS 日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.小组
UNION
Select 记录表.日期, 记录表.小组, Sum(记录表.数据) AS 数据
FROM 记录表
GROUP BY 记录表.日期, 记录表.小组
)  AS a
GROUP BY a.日期
PIVOT a.小组;

最后将查询1-----查询5全部删除,即可得到一个带合计、累计的交叉表查询。并且排序方式为按“日期”。


点击下载此附件



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助