-
小灰灰1 数据达人Lv4
发表于2020-7-30 19:19
楼主
报表需求:
表样结果:
列出销售额占了前一半的大客户名单和金额以及这些客户的数量和平均销售额。
注:占用一半大客户规则指,按照金额从大到小排序,然后对金额累加,知道累加值到 总金额的一半。表样结果:
制作过程
1. 准备SQL主题表
SQL语句为:selectcustomer,sum(sales) as sales from salesgroup by customer order by sum(sales)desc
2. 设计报表模板
其中,
A1:=sum(TEST.sales)/2计算所有客户的销售总金额的一半,并在右侧属性里设置隐藏属性
A3:=TEST.customer 浮动维字段,同时在右侧设置排序的依据是B3
C3:=self.leftcell.value+self.upcell.value实现金额累计计算
D3:=if(GRID1.C3.upcell.value<GRID1.A1,1,null) 根据累计金额将符合条件的数据标识为1,不符合条件的标识为null,方便后面统计数量
B4:=sum(GRID1.D3$),根据D3的标识统计出来大客户数量
B5:=GRID1.D3$.select(@.value=1).select(true,@.leftcell(2).value).avg() 先使用数组的方式过滤出来对应的数据,然后再进行求平均的计算
其他辅助设置:
隐藏行:选中第3行设置显示表达式为:<#=if(GRID1.D3=1,1,0)#>