Office中国论坛/Access中国论坛

标题: 联合查询,sum翻倍问题 [打印本页]

作者: 緈鍢dê誘惑    时间: 2013-4-27 17:02
标题: 联合查询,sum翻倍问题
在做联合查询的时候,对两个表的中的数据进行查询,发现在求sum的时候,出现查询结果翻倍的情况,怎么回事呢?
作者: todaynew    时间: 2013-4-27 17:27
说明两个被联合的select一样
作者: 緈鍢dê誘惑    时间: 2013-4-27 17:57
todaynew 发表于 2013-4-27 17:27
说明两个被联合的select一样

SELECT 海门语音指标.起始时间, Sum([海门语音指标]![CM30:SDCCH掉话次数(无)])/Sum([海门语音指标]![K3003:SDCCH占用成功次数(无)]) AS SDCCH掉话率, Sum([CM33:业务信道掉话次数(无)])/(Sum([K3023:TCH占用成功次数(信令信道)(无)])+Sum([K3013A:TCH呼叫占用成功次数(业务信道)(无)])+Sum([K3013B:TCH切换占用成功次数(业务信道)(无)])) AS [TCH掉话率(含切换)], Sum([海门语音指标]![CM33:业务信道掉话次数(无)])/(Sum([海门语音指标]![K3023:TCH占用成功次数(信令信道)(无)])+Sum([海门语音指标]![K3013A:TCH呼叫占用成功次数(业务信道)(无)])) AS [TCH掉话率(不含切换)], (Sum([海门语音指标]![K3021:TCH占用遇全忙次数(信令信道)(无)])+Sum([海门语音指标]![K3011A:TCH呼叫占用遇全忙次数(业务信道)(无)]))/(Sum([海门语音指标]![K3020:TCH占用请求次数(信令信道)(无)])+Sum([海门语音指标]![K3010A:TCH呼叫占用请求次数(业务信道)(无)])) AS [TCH拥塞率(遇全忙)], (Sum([海门语音指标]![K3021:TCH占用遇全忙次数(信令信道)(无)])+Sum([海门语音指标]![K3011A:TCH呼叫占用遇全忙次数(业务信道)(无)])+Sum([海门语音指标]![K3011B:TCH切换占用遇全忙次数(业务信道)(无)]))/(Sum([海门语音指标]![K3020:TCH占用请求次数(信令信道)(无)])+Sum([海门语音指标]![K3010A:TCH呼叫占用请求次数(业务信道)(无)])+Sum([海门语音指标]![K3010B:TCH切换占用请求次数(业务信道)(无)])) AS [TCH拥塞率(含切换)], (Sum([海门语音指标]![CH313:BSC内出小区切换成功次数(无)])+Sum([海门语音指标]![CH333:BSC间出小区切换成功次数(无)]))/(Sum([海门语音指标]![CH330:BSC间出小区切换请求次数(无)])+Sum([海门语音指标]![CH310:BSC内出小区切换请求次数(无)])) AS 切换成功率, (1-Sum([海门语音指标]![K3001:SDCCH占用遇全忙次数(无)])/Sum([海门语音指标]![K3000:SDCCH占用请求次数(无)]))*(1-Sum([海门语音指标]![K3011A:TCH呼叫占用遇全忙次数(业务信道)(无)])/Sum([海门语音指标]![K3010A:TCH呼叫占用请求次数(业务信道)(无)])) AS 系统接通率, Sum([海门语音指标]![K3014:TCH话务量(爱尔兰)])/2 AS 话务量, Sum([海门语音指标]![K3034:半速率话务量(爱尔兰)])/2 AS [半速率话务量(爱尔兰)], Sum([海门语音指标]![K3014:TCH话务量(爱尔兰)])/Sum([海门语音指标]![K3015:TCH可用数目(无)]) AS [每线话务量(爱尔兰)], (Sum([海门语音指标]![CH313:BSC内出小区切换成功次数(无)])+Sum([海门语音指标]![CH333:BSC间出小区切换成功次数(无)]))/(Sum([海门语音指标]![CH311:BSC内出小区切换命令次数(无)])+Sum([海门语音指标]![CH331:BSC间出小区切换命令次数(无)])) AS 无线切换成功率, (Sum([海门数据指标]![A9002:上行GPRS TBF建立成功次数(无)])+Sum([海门数据指标]![A9202:上行EGPRS TBF建立成功次数(无)]))/(Sum([海门数据指标]![A9001:上行GPRS TBF建立尝试次数(无)])+Sum([海门数据指标]![A9201:上行EGPRS TBF建立尝试次数(无)])) AS 上行TBF建立成功率, (Sum([海门数据指标]![A9302:下行EGPRS TBF建立成功次数(无)])+Sum([海门数据指标]![A9102:下行GPRS TBF建立成功次数(无)]))/(Sum([海门数据指标]![A9301:下行EGPRS TBF建立尝试次数(无)])+Sum([海门数据指标]![A9101:下行GPRS TBF建立尝试次数(无)])) AS 下行TBF建立成功率, Sum([海门数据指标]![TL9023:上行GPRS RLC层吞吐量(千字节)]+[海门数据指标]![TL9237:上行EGPRS RLC层吞吐量(千字节)])/1024/2 AS 上行数据流量, Sum([海门数据指标]![TL9123:下行GPRS RLC层吞吐量(千字节)]+[海门数据指标]![TL9338:下行EGPRS RLC层吞吐量(千字节)])/1024/2 AS 下行数据流量
FROM 海门数据指标 INNER JOIN 海门语音指标 ON (海门数据指标.GCELL = 海门语音指标.GCELL) AND (海门数据指标.起始时间 = 海门语音指标.起始时间)
GROUP BY 海门语音指标.起始时间;
看看怎么改?
作者: zhuyiwen    时间: 2013-4-28 00:51
彻底看晕了
作者: roych    时间: 2013-4-28 00:52
緈鍢dê誘惑 发表于 2013-4-27 17:57
SELECT 海门语音指标.起始时间, Sum([海门语音指标]![CM30:SDCCH掉话次数(无)])/Sum([海门语音指标]![K30 ...

太长了,看得眼睛骨折了……能不能上传附件(最好是2003版本的)?
此外,有个思路不妨考虑一下,先做联合查询,然后再以这个联合查询为数据源做一个分组查询【具体怎么Sum就看你的实际要求了】,这样应该不会翻倍。
作者: aleeado    时间: 2013-4-28 08:34
我也遇到过,其中一种情况是某个表中有重复记录
作者: koutx    时间: 2013-4-28 12:21
本帖最后由 koutx 于 2013-4-28 12:25 编辑

至今所看到过的最长SQL句子,两个表内连接查询的问题
作者: todaynew    时间: 2013-4-28 12:37
緈鍢dê誘惑 发表于 2013-4-27 17:57
SELECT 海门语音指标.起始时间, Sum([海门语音指标]![CM30:SDCCH掉话次数(无)])/Sum([海门语音指标]![K30 ...

先看看如下查询是否数据重复:
select a.*,b.*
FROM 海门数据指标 as a INNER JOIN 海门语音指标 as b ON (a.GCELL = b.GCELL) AND (a.起始时间 = b.起始时间)
GROUP BY b.起始时间;

如果这个查询记录是重复的,出现两倍关系就是正常的。




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