需求说明:
以润乾报表设计器自带demo数据源为例。
从“订单”表取数,完成按地区group后,地区想按照指定的顺序(“华北、华东、华南、华中、东北、西北、西南”)排序。
分析测试:
1、 Sql:SELECT 货主地区,count(订单ID) 订单个数 FROM 订单where 货主地区 is not null group by 货主地区, 结果为:
2、 要求按照“华北、华东、华南、华中、东北、西北、西南”的顺序排序。
3、 即便加上 order by 货主地区,也无法达到想要的效果。
升序 降序
怎么办?
接下来,看集算器如何轻松解决。
只需一个align函数,简单说明(详细的参考集算器函数说明文档,搜索”align”):
P. align()
描述:
把排列按照另一个序列进行排序/对齐
语法:
P.align(A:x,y) | x,y省略则以P当前记录与A中成员对齐 |
P.align(n,y) | 等同于P.align(to(n),y),支持@r |
备注:
通过关联字段x 和 y 将P 的记录按照A 对齐。对着排列P计算y的值,计算结果和A中的x的值相等则表示两者对齐。
具体做法:
1、 采用集算器脚本完成取数
2、 P.align()函数帮助按指定顺序对齐
A3中表达式
A3结果为:
从以上结果可以看出,一句代码即可完成按指定顺序排序。