分享

分步法实现复杂查询(基本不用SQL语句)[Access软件网]

 漫步梨园 2016-12-26

时 间: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全部删除,即可得到一个带合计、累计的交叉表查询。并且排序方式为按“日期”。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多