0

我正在尝试使用虚拟列表作为数据源在 Filemaker 中制作类似 Excel 的“数据透视表”。问题是我希望能够在第一列中包含未修复的“类别”。字段名称不起作用。

我目前的想法是有一个包含布局名称和类别字段的表,我将通过 ExecuteSQL(或其他函数)将其与其余数据结合起来。

我可以让它与两个 ExecuteSQL 语句一起工作,一个用于类别,一个用于“大量”数据,使用 eSQL 类别中的 WHERE 文本,然后我将它们组合成一个,然后我就设置好了。

我的问题是我希望能够使用get(LayoutName)函数获取类别,从而使脚本更加灵活。每当我get(LayoutName)在 SQL 的 WHERE 行中使用 ? 为结果。我还尝试使用 get(LayoutName) 将布局名称放在字段中,然后像在 WHERE 语句中一样使用该字段,但这也会返回错误。

我承认我在这方面有点新手,所以问题可能出在键盘和椅子之间,有一个简单的语法错误。我尝试了很多不同的方式,包括引号、不引号、单引号等。

这是我用来提取类别的内容...

替换(ExecuteSQL(“SELECT Category_List FROM Categories_VL WHERE Layout_Name = Get(LayoutName)”;“”;“”);“,”;$$delim)

所有字段名称都是正确的,如果我将 LayoutName 更改为与我想要的 Layout_Name 字段匹配的文本,它就可以正常工作。

如果我太罗嗦了,我深表歉意,但我认为更多信息比回答一堆问题要好,因为我忘记了一些东西!

蒂亚!

4

1 回答 1

0

我很难理解你的问题。我希望我正在解决正确的问题。

您不能在 SQL 查询中使用 Filemaker 函数。要查找Layout_Name字段等于当前布局名称的记录,您的查询应该是:

SELECT Category_List 
FROM Categories_VL 
WHERE Layout_Name = ?

然后您将提供当前布局的名称作为参数

ExecuteSQL ( "SELECT Category_List FROM Categories_VL WHERE Layout_Name = ?" ; "" ; "" ; Get ( LayoutName ) ) 

请注意,您可以在函数本身中指定自己的字段和行分隔符,而不是替换默认分隔符,ExecuteSQL()例如:

ExecuteSQL ( "SELECT Category_List FROM Categories_VL WHERE Layout_Name = ?" ; $$delim ; "" ; Get ( LayoutName ) ) 

请参阅:https ://help.claris.com/en/pro-help/#page/FMP_Help%2Fexecutesql.html%23

于 2020-07-21T21:53:13.073 回答