设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2156|回复: 7
打印 上一主题 下一主题

[查询] 这样的子查询如何做(问题解决)

[复制链接]
跳转到指定楼层
1#
发表于 2009-2-23 13:53:53 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 su_xx 于 2009-2-25 15:04 编辑

例子如附件,有3个表a, b,c .              c和a、c和b是按客户ID一对多关系。想要做一个按客户ID分组合计查询,但要求是a表和b表都是按自己的时间段来求合。一般情况下做2个查询,a表按某段时间的查询,b表也是,再根据这2查询再做一个合计查询。我现在的问题是想在一个查询里以子查询方式是否可以实现?因为本人对子查询还是不太懂,请高手给个例子指点一下。谢谢了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2009-2-24 09:10:03 | 显示全部楼层
谢谢楼上的,这样子我自己会做的,我只是想要知道不做A,B查询.直接做一个合计查询,用子查询能不能实现.而不是你这样用窗体.
3#
 楼主| 发表于 2009-2-25 14:19:27 | 显示全部楼层
谢谢版主的回复,可能是我说的不清楚,不是你上面写得哪样:如果不根据时间段下面就可以实现.
==================================================
SELECT c.客户名称, Sum(b.货款) AS 货款总计, Sum(a.回款) AS 回款总计
FROM (c INNER JOIN a ON c.客户ID = a.客户ID) INNER JOIN b ON c.客户ID = b.客户ID
GROUP BY c.客户名称;
====================================================
如果sum(b.货款)  AS 货款总计 ,Sum(a.回款) AS 回款总计 有时间段限制如何写,比如货款时间是2008/1/1到2008/12/31 ,回款是2008/6/1到2009/1/31.
=========================================
解决方法有好多,我想要的问题在一个SQL查询里能不能实现各个表有时间段的限制语句.,只是好奇一下我这种想法可不可行.
4#
 楼主| 发表于 2009-2-25 15:02:25 | 显示全部楼层
谢谢楼上,你写的就是我想要的问题,我自己也在思考,也找到解决方法.我正在学习sql子查询,找点例子做做.
问题解决,谢谢楼上的各位的回复和帮忙.
SELECT c.客户名称, Sum(b查询.货款) AS 货款总计, Sum(a查询.回款) AS 回款总计
FROM (c INNER JOIN [SELECT a.* FROM a WHERE a.日期 Between #1/1/2007#/1 And #12/31/2008#]. AS a查询 ON c.客户ID = a查询.客户ID) INNER JOIN [SELECT b.* FROM b WHERE b.日期 Between #1/1/2008#/1 And #12/31/2009#]. AS b查询 ON c.客户ID = b查询.客户ID
GROUP BY c.客户名称
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-1 08:36 , Processed in 0.073940 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表