# QUERY(modelOrFields, param1,param2...)
结果对象的原始值是一个二维数组,一行一列时返回第一个元素的值。
TODO后期会支持通过其他表达式语法取某一列的数据
# 参数
modelOrFields:必需,是一个模型或者同一个模型的字段列表,如果是模型则查询该模型所有字段
params: 可选,是一个不定长数组,是模型显示定义的有序的参数列表
# 用途
- 单独查一个数据集明细数据,不作用模型之外的过滤条件、不关联其他表、如果在列表浮动内写这个表达式,每一行单独查询计算。
- 与SELECT比不支持过滤条件,如果需要在客户端对查询结果在二次过滤,用FILTER 函数处理
# 与SELECT函数的区别
SELECT 函数只在SQL 端计算、可以做复杂的sql运算,如字段汇总、window函数、关联其他表条件查询、在过滤条件中作为子查询使用等等,这些QUERY 函数都不支持,如果要对字段做汇总等处理都在模型层面做好加工。
在列表每行上求每个企业的总投资金额。
SELECT实现:
select(sum([企业投资关系].[认缴出资额(万元)]),[企业投资关系].[投资企业内部序号]=[企业基本信息].[企业内部序号])
QUERY实现:
QUERY([企业投资关系].[认缴出资额(万元)],[企业基本信息].[企业内部序号])
有这些前置步骤:
- 定义一个数据集
企业投资关系
加工:- 加一个计算字段
sum([企业投资关系].[认缴出资额(万元)])
- 定义一个模型全局变量
投资企业内部序号参数
- 定义过滤条件
投资企业内部序号=投资企业内部序号参数
- 加一个计算字段
# 示例
QUERY([企业投资关系].[认缴出资额(万元)],[企业基本信息].[企业内部序号])
在列表每行上求每个企业的总投资金额。QUERY([销售汇总-大区].[销售数量(件)],'华中')
华中地区的总销售数量,需要做一个数据集将[销售明细表]
按大区汇总成[销售汇总-大区]
QUERY([销售汇总-大区].[销售数量(件)],[C19])
单元格[C19]指定的地区的总销售数量,该表达式可能在浮动区域内,[C19]也可以是去浮动区域内取大区字段的单元格
0条评论
评论