[ABI 5.2] 如何在函数里引用下一行的数据

12054
6

luofei369 初学数据Lv2

发表于2021-5-20 15:33

悬赏1

已解决

楼主
本帖最后由 luofei369 于 2021-5-20 16:20 编辑


数据类型这样,然后序号第一行是1,从第2行开始,是公式,原理就是取供应商名称判断本行和上一行的名字是否一样,如果一样序号不变,如果供应商名字变了,序号就自增
EXCEL 类似这样的公式 在报表工具里如何写?

目前我弄的是这样的
各种报错,如何修改呢

简单来讲,就是同一个供应商给的序号是同一个,不同的就递增,如何实现?






最近看过此主题的会员

davidzhang

athena

lifen

btt132

15207657859TQ

bbs

zengxq

wanglf

cityluck

小书童

最佳答案
本帖最后由 lifen 于 2021-5-21 10:02 编辑

你用的sql查的,可以用开窗函数排个序,直接取开窗函数的值吗? DENSE_RANK()OVER(PARTITION BY * ORDER BY  *)
6个回答

只看楼主

zengxq 数据达人Lv4

发表于2021-5-20 16:55

只看该作者

取消 关注该作者的回复

沙发

可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)

luofei369 初学数据Lv2

发表于2021-5-20 17:22

只看该作者

取消 关注该作者的回复

板凳

zengxq 发表于 2021-5-20 16:55
可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)
...

这个我发现了一个问题 ,分页的时候 第二页又从1开始计算了,分页如何解决呢

luofei369 初学数据Lv2

发表于2021-5-20 17:27

只看该作者

取消 关注该作者的回复

地板

本帖最后由 luofei369 于 2021-5-20 17:28 编辑

zengxq 发表于 2021-5-20 16:55
可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)
...
这是我用到的公式,意思就是第2行,就是内容的第一行给1,然后后面的走公式开始计算,但是第二页的时候,内容的第一行又成1了,又开始重新计算了

IF(ROW()=2,1,IF(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1))

luofei369 初学数据Lv2

发表于2021-5-20 17:33

只看该作者

取消 关注该作者的回复

5#

我发现一翻页,就找不到上一页最后一条数据了...然后就公式无法参与计算又从头开始了

lifen 初学数据Lv2

发表于2021-5-20 15:33

只看该作者

取消 关注该作者的回复

6#

本帖最后由 lifen 于 2021-5-21 10:02 编辑

你用的sql查的,可以用开窗函数排个序,直接取开窗函数的值吗? DENSE_RANK()OVER(PARTITION BY * ORDER BY  *)

luofei369 初学数据Lv2

发表于2021-5-21 10:20

只看该作者

取消 关注该作者的回复

7#

lifen 发表于 2021-5-21 09:57
你用的sql查的,可以用开窗函数排个序,直接取开窗函数的值吗? DENSE_RANK()OVER(PARTITION BY * ORDER BY ...

学到新知识了,但是目前项目上用的是MYSQL 5.7 好像不支持开窗函数

登录后可回答问题,请登录注册

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

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号