ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2330|回复: 11

困扰我多年求各个版主、高人帮我看看access查询问题。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-21 21:23 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 网优 于 2012-12-22 11:29 编辑

指标.rar (22.44 KB, 下载次数: 16)


明细要看附件,我想把两个表中都存在的记录并计算统计出来,但是查询结果中为什么tzp里有几个cellname则结果就翻几倍。比如tzp里cellname一样的名称有2个,则出来的结果乘以2,tzp里cellname一样的名称有3个,则出来的结果乘以3。为什么呢。谁能帮我改一下啊???
虽然分别对tcs、tzp建好两个查询再建一个查询索引过来也可以实现。但是我想用一个查询就搞定,因为我想看在一个查询里实现是什么语句。。。求助中
附件是我举的例子。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-21 21:24 | 显示全部楼层
老样子,,,自己先顶下

TA的精华主题

TA的得分主题

发表于 2012-12-22 13:55 | 显示全部楼层
  1. SELECT [date],BSC,cellname,Sum(K3014TCH话务量) AS K3014TCH话务量之合计, Sum(K3014TCH话务量)/Sum(K3015TCH可用数目) AS 每线话务量, Sum(K3015TCH可用数目) AS K3015TCH可用数目之合计,Sum(指配尝试) AS CR440A立即指配尝试次数之合计, Sum(指配成功) AS CR440B立即指配成功次数之合计 FROM
  2. (select [date],BSC,cellname,K3014TCH话务量,K3015TCH可用数目,K3015TCH可用数目,null as 指配尝试,NULL AS 指配成功 FROM TCS
  3. UNION ALL
  4. select [date],BSC,cellname,null,null,null,CR440A立即指配尝试次数,[CR440B立即指配成功次数] FROM TZP)
  5. GROUP BY Date, BSC, cellname
复制代码
楼主语句的关联条件设置不当,产生笛卡尔积,造成数据虚增。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-22 13:57 | 显示全部楼层
wuxiang_123 发表于 2012-12-22 13:55
楼主语句的关联条件设置不当,产生笛卡尔积,造成数据虚增。

那在mysql中怎么设置啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-22 13:59 | 显示全部楼层
wuxiang_123 发表于 2012-12-22 13:55
楼主语句的关联条件设置不当,产生笛卡尔积,造成数据虚增。

版主,,mysql中可以用union吗

TA的精华主题

TA的得分主题

发表于 2012-12-22 14:05 | 显示全部楼层
先以Date, BSC, cellname这三个字段对两表汇总,再进行JOIN连接,JION连接的关联条件以这Date, BSC, cellname三个字段进行关联。
格式:
  1. SELECT 需要返回的字段 FROM
  2. (SELECT [Date], BSC, cellname,SUM(需要汇总字段) AS 别名 FROM 表1 GROUP BY [Date], BSC, cellname)A
  3. INNER JOIN
  4. (SELECT [Date], BSC, cellname,SUM(需要汇总字段) AS 别名 FROM 表2 GROUP BY [Date], BSC, cellname)B
  5. ON A.[DATE]=B.[DATE] AND A.[BSC]=B.[BSC] AND A.cellname=B.cellname
复制代码
至于用INNER JOIN还是LEFT JOIN就要看你的实际需要了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-22 14:11 | 显示全部楼层
wuxiang_123 发表于 2012-12-22 14:05
先以Date, BSC, cellname这三个字段对两表汇总,再进行JOIN连接,JION连接的关联条件以这Date, BSC, cellna ...

(SELECT [Date], BSC, cellname,SUM(需要汇总字段) AS 别名 FROM 表1 GROUP BY [Date], BSC, cellname)A
(SELECT [Date], BSC, cellname,SUM(需要汇总字段) AS 别名 FROM 表2 GROUP BY [Date], BSC, cellname)B
比如说A有5个值要返回,B有7个值要返回,那么A就要有7个值要填null,B就有5个值填null吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-22 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wuxiang_123 发表于 2012-12-22 14:05
先以Date, BSC, cellname这三个字段对两表汇总,再进行JOIN连接,JION连接的关联条件以这Date, BSC, cellna ...

SELECT
tcs.`date`,
tcs.BSC,
tcs.cellname,
Sum(tcs.`K3000SDCCH占用请求次数`),
Sum(tzp.`CR440A立即指配尝试次数`)
FROM
(SELECT Date, BSC, cellname,SUM(`K3000SDCCH占用请求次数`) AS sd FROM tcs GROUP BY Date, BSC, cellname)
INNER JOIN
(SELECT Date, BSC, cellname,SUM(`CR440A立即指配尝试次数`) AS lj FROM tzp GROUP BY Date, BSC, cellname)
ON tcs.DATE=tzp.DATE AND tcs.[BSC]=tzp.[BSC] AND tcs.cellname=tzp.cellname
执行不了啊

TA的精华主题

TA的得分主题

发表于 2012-12-22 14:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
网优 发表于 2012-12-22 14:23
SELECT
tcs.`date`,
tcs.BSC,
  1. SELECT
  2. A.date,
  3. A.BSC,
  4. A.cellname,
  5. 请求总计,
  6. 尝试总计
  7. FROM
  8. (SELECT Date, BSC, cellname,SUM(K3000SDCCH占用请求次数) AS 请求总计 FROM tcs GROUP BY Date, BSC, cellname)a
  9. INNER JOIN
  10. (SELECT Date, BSC, cellname,SUM(CR440A立即指配尝试次数) AS 尝试总计 FROM tzp GROUP BY Date, BSC, cellname)b
  11. ON a.DATE=b.DATE AND a.[BSC]=b.[BSC] AND a.cellname=b.cellname
复制代码

你的语句存在以下问题:
1:没有为表指定别名
2:部分标点符号漏了
3:既然内层的查询已经唯一,就没有必要再汇总。
4:K3000SDCCH占用请求次数不存在此字段

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-22 15:12 | 显示全部楼层
wuxiang_123 发表于 2012-12-22 14:38
你的语句存在以下问题:
1:没有为表指定别名
2:部分标点符号漏了

成功了,我慢慢体会下。。。非常感谢。。谢谢!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 20:18 , Processed in 0.036126 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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