我尝试使用此代码在SELECT
子句中使用动态参数:
ExecuteSQL (
"
SELECT ?
FROM \"KPI\"
WHERE \"Year\" IN (2016)
"
;
""; "" ; "MarketingActivities"
)
它返回意外结果,它按字面解释字符串而不是字段名称。
MarketingActivities
MarketingActivities
MarketingActivities
...
此代码确实提供了预期结果,但不是动态的:
ExecuteSQL (
"
SELECT \"MarketingActivities\"
FROM \"KPI\"
WHERE \"Year\" IN (2016)
"
;
""; ""
)
结果:
318
75
235
...
这是FileMaker 15.该参数作为全局变量存储在一个字段中,但在这里我明确写出来了。我还尝试过动态参数的变体:
\"Marketing Activities\"
'Marketing Activities'
在WHERE
子句中使用动态参数时,我没有遇到过类似的问题。 有没有办法解决此问题并允许SELECT
子句动态化?
答案 0 :(得分:1)
您无法使用参数指定列。使用修改后的计算更容易实现:
ExecuteSQL ("
SELECT " & "MarketingActivities" & "
FROM \"KPI\"
WHERE \"Year\" IN (2016)
";""; "" )
您可以使用变量或字段中的值代替字符串,使列选择动态
答案 1 :(得分:0)
我使用了link:
示例:
ExecuteSQL("select sum(S.salary) from Employees E join Salary S on E.EmpID = S.EmpID where E.Department = ?"; ""; ""; Department)
所以对你来说,这应该是以下几点:
ExecuteSQL (
"
SELECT ?
FROM \"KPI\"
WHERE \"Year\" IN (2016)
"
;
""; "" ; MarketingActivities)