Filemaker Pro Executesql返回空值与多个总和值
问题描述:
我正在使用Filemaker专业版14.现在通过使用executionql动态绘制我的月表现,按月排序。Filemaker Pro Executesql返回空值与多个总和值
我使用“让”函数来选择两个单独的字段的总和。
然后我得到如下两组分隔数据的结果。
我的问题是我不能通过直接划分两组数据来返回一组分隔数据?
例如:
List1: 100;150;200
List2: 1000;1200;1500
所需的结果:
List3: List1/List2 ==> 0.1;0.125;0.133
实际结果(仅返回一个结果):
List3: 0.0010013818
似乎由数据划分所有连接在一起像
100150200/100012001500
任何意见是高度赞赏。
答
你得到的结果实际上是预期的行为。当您发现自己,当您告诉FileMaker将List1除以List2时,它将每个列表投射为一个数字,然后进行分割。这将删除所有非数字字符并创建两个长字符串,然后将第一个字符除以第二个字符。
您使用的是FileMaker Pro Advanced?如果是这样,解决这个问题最简单的方法是通过使用自定义功能,像这样:
/*
=======================================================
MathLists ©2017 Drakeling Technologies
Created by Jeff Drake 19 Oct 2017
Parameters: list1 ; list2 ; separator
Purpose: applies the specified operator to each value in list 1 and the corresponding value in list 2, e.g.
MathLists ("100;150;200" ; "1000;1200;1500" ; "/" ; ";") = ".1;.125;.1333333333333333"
Dependencies: none
=======================================================
*/
Let ([
//CHANGE EACH LIST TO RETURN-DELIMITED.
#list1 = Substitute (list1 ; separator ; ¶) ;
#list2 = Substitute (list2 ; separator ; ¶) ;
//STORE THE MAXIMUM NUMBER OF VALUES TO PROCESS.
#maxValues = Max (ValueCount (#list1) ; ValueCount (#list2)) ;
//STORE THE ORIGINAL SEPARATOR.
$ƒMathLists = If (IsEmpty ($ƒMathLists) ; separator ; $ƒMathLists)
] ; //end define Let
Substitute (
List (
//IF THERE IS AT LEAST ONE PAIR OF VALUES REMAINING, RECURSE THE FUNCTION.
If (#maxValues > 1 ;
MathLists (LeftValues (#list1 ; #maxValues - 1) ; LeftValues (#list2 ; #maxValues - 1) ; operator ; $ƒDivideLists)) ; //end If
//DIVIDE THE nth VALUE FROM LIST 1 BY THE nth VALUE FROM LIST 2.
Evaluate (GetValue (#list1 ; #maxValues) & operator & GetValue (#list2 ; #maxValues))
) //end List
//RESTORE THE ORIGINAL SEPARATOR WHEN DONE.
; ¶ ; $ƒMathLists
) //end Substitute
//CLEAR THE ORIGINAL SEPARATOR WHEN DONE.
& Let ($ƒMathLists = "" ; "")
) //end Let
我所做的代码可扩展的,这样你就可以加,减,乘或除,这取决于您指定的四个运算符中。
希望有帮助!