Office中国论坛/Access中国论坛

标题: 这个查询能一步完成吗? [打印本页]

作者: 孤帆远影    时间: 2007-8-23 14:40
标题: 这个查询能一步完成吗?
我有两个表
表一
地区,商家,卖出限额
表二
商家,客户名称,买入,卖出
查询结果
地区,总限额,买入合计,卖出合计,卖出率
注:
表一是商家信息
表二是买卖记录,买入和卖出为逻辑变量
两表中可以用商家作关联

卖出率=卖出合计/总限额
这个查询该如何写?
作者: 一点通    时间: 2007-8-23 15:08
上传一个实例,以便能更好处理你的问题
作者: andymark    时间: 2007-8-23 15:19
SELECT 表1.地区, Sum(表1.卖出限额) AS 总限额, Sum(表2.买入) AS 买入合计, Sum(表2.卖出) AS 卖出合计, (Sum(表2.卖出)/Sum(表1.卖出限额)) AS 卖出率
FROM 表1 INNER JOIN 表2 ON 表1.商家=表2.商家
GROUP BY 表1.地区
作者: shyx    时间: 2007-8-23 15:46
标题: 回复 #3 andymark 的帖子
不完善,如果某地区在表2中无值,则查询不到结果,应该显示结果为0
作者: 孤帆远影    时间: 2007-8-23 15:46
标题: 上传例子
用表1和表2,是用最简洁的方式产生查询4的效果?请高手忙帮!
作者: 孤帆远影    时间: 2007-8-23 15:55
标题: 修改例子
原来的例子,略作修改
作者: andymark    时间: 2007-8-23 17:43
SELECT a.地区, a.总限额, nz(b.买入,0) AS 总买入, nz(c.卖出,0) AS 总卖出, IIf(IsNull([总卖出]),0,[总卖出]/[总限额]) AS 卖出率
FROM ([SELECT 表1.地区, Sum(表1.限额) AS 总限额 FROM 表1 GROUP BY 表1.地区]. AS a LEFT JOIN [SELECT 表1.地区, Count(表2.买入) AS 买入 FROM 表1 INNER JOIN 表2 ON 表1.商家 = 表2.商家 WHERE 表2.买入=True GROUP BY 表1.地区]. AS b ON a.地区 = b.地区) LEFT JOIN [SELECT 表1.地区, Count(表2.卖出) AS 卖出 FROM 表1 LEFT JOIN 表2 ON 表1.商家 = 表2.商家 WHERE 表2.卖出=True GROUP BY 表1.地区]. AS c ON a.地区 = c.地区;
作者: 孤帆远影    时间: 2007-8-23 19:04
标题: 回复 #7 andymark 的帖子
ok,没问题,谢谢!
作者: 一点通    时间: 2007-8-23 19:30
所以说除了说明外,附加上例子,这对解决问题有很大的好处的,特别是对于初学者




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3