在SELECT子句中使用动态参数

时间:2017-02-17 16:29:40

标签: sql filemaker

我尝试使用此代码在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子句动态化?

2 个答案:

答案 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)