找回密码
 立即注册

QQ登录

只需一步,快速开始

allencliang

初级会员

21

主题

78

帖子

243

积分

初级会员

积分
243

圣诞拼拼乐

allencliang
初级会员   /  发表于:2022-1-6 18:14  /   查看:3258  /  回复:13
10金币
本帖最后由 allencliang 于 2022-1-7 15:57 编辑

现有合同登记表,每个合同的年限不一样,故按照最长年限登记每年的“合同价值”(“第1年合同价值”~"第N年合同价值”)。当年合同价值登记为0表示合同在前一年已执行完毕。

拟增加字段:“年均合同价值”

在excel中应使用averageif,选择合同价值大于0的单元格纳入计算范围。


活字格公式字段似乎不支持,有什么解决办法?我想用“年均合同价值”作为一个查询条件。谢谢!
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,这个AVERAGEIF 函数是一个统计函数吧,也就是对数据表的多条记录进行统计之后的得出来的值,这个推荐您使用视图来实现这个功能,猜测可能是根据日期来统计“年均合同价值”,我们可以对日期group by就是分组,通过where过滤掉不符合条件的记录,然后通过avg函数得出想要的结果。 举个例子: 这是数据表,我们要对佣金大于2800的记录求出对应年份的平均值,也就是佣金低于2800的不参与计算。 创建视图语句: SELECT "时 ...

13 个回复

倒序浏览
最佳答案
最佳答案
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-6 18:14:57
来自 2#
您好,这个AVERAGEIF 函数是一个统计函数吧,也就是对数据表的多条记录进行统计之后的得出来的值,这个推荐您使用视图来实现这个功能,猜测可能是根据日期来统计“年均合同价值”,我们可以对日期group by就是分组,通过where过滤掉不符合条件的记录,然后通过avg函数得出想要的结果。
举个例子:

这是数据表,我们要对佣金大于2800的记录求出对应年份的平均值,也就是佣金低于2800的不参与计算。
创建视图语句:
SELECT "时间",AVG("佣金") FROM "表3"where "佣金">=2800 group by "时间"
效果:

也就是利用这种方式,可以使得第二年佣金为2500的不参与计算,达到类似AVERAGEIF 函数的效果。


本帖子中包含更多资源

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

x
回复 使用道具 举报
allencliang
初级会员   /  发表于:2022-1-6 20:44:41
3#
谢谢!把“年均合同价值”作为数据表查询条件应该怎么做?查询命令里面好像只能使用数据表中的字段,我暂时还是不太明白怎么结合视图语句。。。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-6 21:38:28
4#
本帖最后由 Howie.Sun 于 2022-1-6 21:40 编辑
allencliang 发表于 2022-1-6 20:44
谢谢!把“年均合同价值”作为数据表查询条件应该怎么做?查询命令里面好像只能使用数据表中的字段,我暂时 ...

您好,这个“年均合同价值”不应该是数据表中的字段,它是根据数据表中的记录得出来的,是多条记录汇总以后的结果,如果强行加到数据表中反而没有实际意义呢。视图是可以当作数据表来用的,同样可以绑定到表格中,利用查询条件来筛选,不过既然是统计结果,那么视图中的数据量也是不大的,感觉用来做展示比较好。
回复 使用道具 举报
allencliang
初级会员   /  发表于:2022-1-6 21:59:56
5#
感谢!一直没懂什么情况下应该用视图,如有教程请分享一下。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-6 22:37:11
6#
allencliang 发表于 2022-1-6 21:59
感谢!一直没懂什么情况下应该用视图,如有教程请分享一下。

相关的教程可能比较少呢,需要一定的SQL基础,视图的话一般用在统计数据和按需取数据的时候应用比较广泛,因为有时候可能数据表很早就设计好了,但是不必要的字段太多,我们需要对数据表中的数据做一些处理才能获得我们想要的数据,这时候视图就派上用场了。但是视图是虚拟的,物理上是不存在的,只是存储了数据的集合,视图中数据是根据数据表的更新而更新,用户不可以更改/删除视图中的数据的。
就比如咱们这个场景,数据表中的字段不能满足我们的需求,这个时候就可以考虑视图来做。有时候公式字段/统计字段可以处理的话,那么就尽量不要使用视图。
回复 使用道具 举报
allencliang
初级会员   /  发表于:2022-1-7 13:58:46
7#
非常感谢!
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-7 13:59:45
8#

不客气哈,感谢您对活字格的支持。
后面有问题,欢迎继续发新帖交流
回复 使用道具 举报
allencliang
初级会员   /  发表于:2022-1-7 15:56:42
9#
抱歉我再追问一个问题,请参见最新上传的DEMO。合同信息表中关于合同价值的表结构设计和您的例子有所不同。我已经添加了“合同总价”这个公式字段,使用了简单的数学表达式,不需要条件判断。但在这种表结构下,即使借助视图好像也无法计算“年均合同价值”,因为统计函数只能对某一列中的值进行统计,而我的表需要对某一行中的值去统计。
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-7 17:55:02
10#
allencliang 发表于 2022-1-7 15:56
抱歉我再追问一个问题,请参见最新上传的DEMO。合同信息表中关于合同价值的表结构设计和您的例子有所不同。 ...

根据您提供的demo,咱们这个其实没必要非要使用数据表的字段来处理呢,可以利用Excel函数来处理。
就是我们要求年均合同价值,然后合同价值为0的不参与计算,您看看结果对不对。
主要就是利用SUM函数求和,COUNTIF函数求出合同价值大于0的数目,然后二者再做除法就行。

本帖子中包含更多资源

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

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部