X++中SysComputedColumn::Sum用法求助,无相关文档参考
SysComputedColumn 字段求和正确实现方式
你用错方法了:SysComputedColumn::Sum()是聚合求和函数,用于GROUP BY场景下对单个字段做分组求和(比如统计某类物料的总净重),而非同一行内多个字段的加法运算。
要实现同一行内字段相加,直接用SysComputedColumn::returnField获取每个字段的SQL表达式,再用字符串拼接+运算符即可,以下是具体实现:
实现 grossWeight(TaraWeight + NetWeight)
SysComputedColumn::returnStr( SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(TaraWeight)) + " + " + SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(NetWeight)) )
实现多字段求和(itemWeight + packingWeight + palletWeight)
SysComputedColumn::returnStr( SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(itemWeight)) + " + " + SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(packingWeight)) + " + " + SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(palletWeight)) )
注意事项
如果字段可能为NULL,直接相加会导致结果为NULL,需要用ISNULL处理空值:
SysComputedColumn::returnStr( "ISNULL(" + SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(TaraWeight)) + ", 0)" + " + " + "ISNULL(" + SysComputedColumn::returnField(tableStr(YourDataSourceTable), identifierStr(NetWeight)) + ", 0)" )
内容的提问来源于stack exchange,提问作者Šimon Šťastný
相关产品推荐
相关产品推荐

