关于access聚合函数sum翻倍的问题

作者&投稿:酆鲍 (若有异议请与网页底部的电邮联系)
access总计之后得到结果翻倍是为什么,而且翻的倍也不同~

因为你的查询设计有问题,使用了INNER JOIN 或者 LEFT/RIGHT JOIN吧
打个比方是:
A表的记录为:
AB字段C字段
ABCX100
EFGY100
B表的记录为
A字段B字段
001X
002X
如果此时用A.B INNER JOIN B.B,并且SUM(C)的话,结果就是2倍,重点就是B表的B字段有多个重复的X。
你应该用唯一的值来JOIN,这样才不会有翻倍

access语句有他的规则,每个语言都有

你这语句的字段名跟你表结构的字段名都不搭啊?你确定你没搞错?

不过单纯就你sql语句来说,switch用法不对,from前多逗号,sum函数用完后没group by等问题还是存在的。

select t.id,t.xm,
sum(switch xk='语文',t.fenshu,true,0) as yw,
sum(switch xk='数学',t.fenshu,true,0) as sx,
sum(switch xk='英语',t.fenshu,true,0) as yy,
sum(switch xk='思品',t.fenshu,true,0) as sp,
sum(switch xk='科学',t.fenshu,true,0) as kx,
sum(switch xk='音乐',t.fenshu,true,0) as yy
(select * from a
union all
select * from b) t
group by t.id,t.xm

而且这种俩表结构一样,不需要关联,需要的是union all或者union



你这语句的字段名跟你表结构的字段名都不搭啊?你确定你没搞错?

不过单纯就你sql语句来说,switch用法不对,from前多逗号,sum函数用完后没group by等问题还是存在的。

select t.id,t.xm,
sum(switch xk='语文',t.fenshu,true,0) as yw,
sum(switch xk='数学',t.fenshu,true,0) as sx,
sum(switch xk='英语',t.fenshu,true,0) as yy,
sum(switch xk='思品',t.fenshu,true,0) as sp,
sum(switch xk='科学',t.fenshu,true,0) as kx,
sum(switch xk='音乐',t.fenshu,true,0) as yy
(select * from a
union all
select * from b) t
group by t.id,t.xm
而且这种俩表结构一样,不需要关联,需要的是union all或者union

你这语句的字段名跟你表结构的字段名都不搭啊?你确定你没搞错?

不过单纯就你sql语句来说,switch用法不对,from前多逗号,sum函数用完后没group by等问题还是存在的。

select t.id,t.xm,
sum(switch xk='语文',t.fenshu,true,0) as yw,
sum(switch xk='数学',t.fenshu,true,0) as sx,
sum(switch xk='英语',t.fenshu,true,0) as yy,
sum(switch xk='思品',t.fenshu,true,0) as sp,
sum(switch xk='科学',t.fenshu,true,0) as kx,
sum(switch xk='音乐',t.fenshu,true,0) as yy
(select * from a
union all
select * from b) t
group by t.id,t.xm
而且这种俩表结构一样,不需要关联,需要的是union all或者union


懂Access表的进来一下,多表连接聚合函数,谢谢
要实现你的要求,可以使用SQL的连接(JOIN)和聚合函数(Aggregate Functions)。这里使用的是COUNT函数和GROUP BY子句。以下是一个可能的SQL查询:sql复制代码 SELECT S.name AS业务员,P1.name AS商品名1,P3.name AS商品名3,P8.name AS商品名8,SUM(O.money) AS金额 FROM sales S LEFT JOIN ord...

为什么ACCESS无法执行聚合函数?
ACCESS 试图执行的查询中不包含作为聚合函数一部分的特定表达式,是设置错误造成的,解决方法如下:1、首先打开ACCESS数据库,选择创建查询设计按钮。2、然后在弹出对话框分别双击tEmployee和tGroup。3、然后分别双击字段"编号"、"姓名"、"职务"和"聘用时间",和名称。4、然后在名称字段输入条件开发部。5...

Access分组数据Access中如何计算如何分组记录
Access中的连接我们学习了规范化的过程,将信息存储在不同的字段。 有时,您想要查看或查看数据,例如将Name和phone字段组合为单个字段。可以通过创建连接一个或多个字符串的计算字段一起显示该信息。还可以添加其他字符,如逗号或句点,也可能需要。要在Access中进行连接,可以使用两个不同的运算符(&)和...

access2016中聚合数据的功能是什么
汇总和统计。根据查询相关公开信息显示,Access2016中聚合数据的功能是允许用户对数据进行汇总和统计,例如计算总和、平均值、最大值、最小值等。在表格和查询中使用聚合函数可以帮助用户快速了解数据的总体情况,以及对数据进行更深入的分析和决策。常用的聚合函数包括SUM、AVG、MAX、MIN、COUNT等。

access两个字段相乘可以和sum聚合函数一起用吗
两者可以一起用。在Access数据库中,可以将两个字段相乘并使用Sum聚合函数一起使用,以计算它们的总和是因为Access支持表达式和聚合函数的组合使用。通过将两个字段相乘并使用Sum函数,可以对每个记录或行执行乘法运算,然后将结果相加,以得到所有记录的总和。这类似于在电子表格软件中对单元格执行乘法运算,...

设置交换机端口trunk和access的区别?
设置交换机端口trunk和access的区别:端口接收数据时不同、端口发送数据时不同 1、端口接收数据时不同:trunk:如果接收的数据包本身不包含VLAN信息的话,那么该数据包将会加上该缺省VLAN的信息;如果接收的数据包本身已经包含了VLAN信息,那么将不再添加。access:无论接收的数据包是否已经含有VLAN信息,...

怎么对Access多表进行数据汇总
多表汇总跟单表汇总本质上是一样的,基本方法无非就是使用聚合函数(通常需要配合group by子句一起使用)来检索出汇总信息。多表汇总一般需要使用连接与联合这两种手段将来自不同数据表的数据合并在一起。对于多表连接,我们需要特别注意它的笛卡尔乘积输出规则所导致的记录行数增大效应,否则汇总出来的数字...

access 查询里的汇总 是干什么用的
group by是分组查询的意思。一般与聚合(汇总等等)函数相结合使用,查询是对指定条件的数据分组进行检索。比如:SELECT 学号,count(课号)FROM 选课表 group by 学号 按学生查询每个学生选了几门课。再如:SELECT AVG(年龄)FROM 学生表 这个不用group by的原因是把所有学生当作一组,查所有学生的平均...

如何在ACCESS SQL中使用聚合函数
如何在ACCESS SQL中使用聚合函数 聚合函数:SUM(列名) 求出某一列属性值的总和 AVG(列名) 求出某一列属性值的平均值 MAX(列名) 求出某一列属性值的最大值 MIN(列名) 求出某一列属性值的最小值 COUNT(列名) 求出某一列属性值的个数 COUNT (*) 求出所有元组的个数 ...

access查询中group by与计数的区别?
ACCESS里 "Group By”与"Count" 是两个不同的东西。前者是SQL查询语言里的“分组子句”,它可以对记录进行分组,用于提取每个组中一条与该组汇总有关的信息。后者是SQL查询语言里的聚合函数之一,它可以对记录进行计数,返回记录的条数。"Group By”子句通常要与聚合函数配合使用借以提取记录中的分组...

隆林各族自治县13684477336: 如何在ACCESS SQL中使用聚合函数 -
印采润尔: 如何在ACCESS SQL中使用聚合函数 聚合函数: SUM(列名) 求出某一列属性值的总和 AVG(列名) 求出某一列属性值的平均值 MAX(列名) 求出某一列属性值的最大值 MIN(列名) 求出某一列属性值的最小值 COUNT(列名) 求出某一列属性值的个数 COUNT (*) 求出所有元组的个数

隆林各族自治县13684477336: Access数据库总计的COUNT、SUM、AVG、MAX和MIN等选项目的功能各是什么? -
印采润尔: COUNT、SUM、AVG、MAX和MIN是最常用的SQL聚合函数,也可称之为SQL合计函数.1、COUNT()函数返回括号中的字段或表达式的记录条数; 2、SUM()函数返回对括号中的字段值或表达式值的累加数; 3、AVG()函数返回对括号中的字段值或表达式值的平均值; 4、Max()函数返回对括号中的字段值或表达式值的最大值; 5、Min()函数返回对括号中的字段值或表达式值的最小值;SQL聚合函数通常结合GROUP BY子句一起使用,每个小组只返回一条有关该小组汇总信息.

隆林各族自治县13684477336: access总计之后得到结果翻倍是为什么,而且翻的倍也不同 -
印采润尔: 因为你的查询设计有问题,使用了INNER JOIN 或者 LEFT/RIGHT JOIN吧 打个比方是: A表的记录为: A B字段 C字段 ABC X 100 EFG Y 100 B表的记录为 A字段 B字段 001 X 002 X 如果此时用A.B INNER JOIN B.B,并且SUM(C)的话,结果就是2倍,重点就是B表的B字段有多个重复的X. 你应该用唯一的值来JOIN,这样才不会有翻倍

隆林各族自治县13684477336: 在ACCESS中,要弹出对话框,输出某些信息,可以用函数什么来实现? -
印采润尔: 题主可以参考下列例句: 1)求整张表的总值 SELECT sum(产值) as 总产值 from 产值; 2)求每一天的总产值 SELECT 日期,sum(产值) as 日产值 from 产值 group by 日期; 聚合函数sum一般需要配合GROUP子句一起使用,可以用单个或多个字段分组外,还可以用基于分组字段值的表达式进行分组汇总.除了汇总信息,未参与分组的字段不得出现于select子句后面的输出字段列表中.

隆林各族自治县13684477336: ACCeSS窗体中Sum函数出错? -
印采润尔: Sum属于SQL语言里的聚合函数,它只能在SQL语句里使用.除了编写SQL语句和设置窗体记录源属性或控件行来源属性外,不能直接应用于ACCESS窗体里.在ACCESS窗体里如果需要算出汇总数量,可以使用DSum()函数.下面是DSum()函数的联机帮助截图,供参考:

隆林各族自治县13684477336: Access 中Sum 函数求多个字段的和的格式
印采润尔: select sum(字段1),sum(字段2) from 表名

隆林各族自治县13684477336: 请ACCESS高手帮我解答这题!统计查询字段的值! -
印采润尔: from 后面只能跟是数据库中的一个表名,不是表名的话肯定会报错.如果想统计总消费费用,循环是的方法是不合理的,如果你的数据量有1万条你这样循环一下估计电脑的状态就是死机状,可以用sum()这个聚合函数.如:select sum(所要统计的字段名) as 总消费 from 表名;然后可获取总收入=Rs("总消费"),如果是多表同样用此方法,统计之后将各个聚合函数所得值相加,如果多表之间存在管理,可以用外部键链接,直接select后相加,例如:select (sum(表一字段名)+sum(表二字段名)) as 总消费额 fromg 表一,表二 where 表一.外部键=表二.外部键 这样可以直接得到多表合集消费额,即Rs(总消费额)

隆林各族自治县13684477336: 计算数据库的和的函数是(),计算数据的平均值的函数是() -
印采润尔: 计算数据库的和的函数是sum;计算数据的平均值的函数是avg. 工具:oracle 10g步骤: 1、数据库中有emp表如下: 2、按照deptno求每个deptno中sal的和,可用如下语句: select deptno,sum(sal) from emp group by deptno;3、查询结果: 4、按照deptno求每个deptno中sal的平均值,可用如下语句: select deptno,avg(sal) from emp group by deptno;5、查询结果:

隆林各族自治县13684477336: ACCESS数据库求数据总和
印采润尔: 用聚合函数sum select sum(fs) as fs from 表的名称 你想用循环做吗?

隆林各族自治县13684477336: ACCESS SQL vba 聚合函数 -
印采润尔: TRANSFORM Sum(Q1.N) SELECT Q1.商户编号 FROM (SELECT 商户编号, [交易类型] & "交易金额" AS BT, 交易金额 as N FROM AAA UNION ALL SELECT 商户编号, [交易类型] & "交易笔数" AS BT, 1 AS N FROM AAA) as Q1 GROUP BY Q1.商户编号 PIVOT Q1.BT;AAA是表名

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网