分步法实现复杂查询(基本不用SQL语句)-半夜罗
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


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

发表时间:2014/6/24 17:29:56 评论(0) 浏览(12455)  评论 | 加入收藏 | 复制
   
摘 要:不用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群(群号:198465573)
 
 相关文章
写了一个好复杂的SQL查询语句  【jimcloudy  2007/11/24】
SQL Union和SQL Union All用法  【金宇转载  2008/4/12】
深入讲解SQL Union和Union All的使用方法  【UMVsoft整理  2008/6/19】
[access报表]access如何制作复杂报表  【umvsoft整理  2008/7/23】
异曲同工——使用代码解决复杂查询,查询日期补空行  【在水一方  2013/4/1】
Union与Select into 联合使用  【杏林求真  2013/4/7】
union与union all 的区别  【杜威  2013/12/1】
常见问答
技术分类
相关资源
文章搜索
关于作者

半夜罗

文章分类

文章存档

友情链接