2015-01-09 91 views
1

我试图在FileMaker Pro 13中创建一个字段(计算结果),它将返回在特定字段中选择特定值的次数。查找特定值的出现次数

例如:

假设有表1只有1个命名字段字段领域1是向下具有选项“A”列表字段的下降,“B”,&“C” 。下面的数据是从表1的记载使用场,场1:

记录1:表1 ::字段1 = “A”

记录2:表1 ::字段1 =“A “

记录3:表1 ::字段1 = ”B“

记录4:表1 ::字段1 = ”C“

我要的是横跨记录搜索计数器对于表1并且查找选择某个选项的次数。例如,我想知道字段1中选择了多少次“A”,并返回“2”。

我已经试过到目前为止做的是下面的,但还没有想出这么热(返回 “?”):

的ExecuteSQL(

“select字段1

FROM表1

WHERE字段1 = 'A'”

; “”; “”)

对于正确的SQL脚本有何建议?

回答

1

的版本正确执行

ExecuteSQL(

"SELECT Count(\"Field 1\") 

FROM \"Table 1\" 

WHERE \"Field 1\" = ?" 

;"";"";"A") 

当您使用的ExecuteSQL,你传递一个字符串转换为FileMaker的功能,然后在幕后的FileMaker使用该字符串和各种其他的作品,你给它执行该操作。

如果您的字段或表名中有空格,例如Field 1,FileMaker认为你的意思是“选择一个字段名称Field和一个名为1的字段。如果字段名称包含空格或特殊字符,但不能只使用普通双引号,那么它将引用该字段名称,因为这会结束该字符串。

解决它的方法是什么我做以上;逃避周围的字段或表名称双引号

此外,?"A"在底部,您可以将数据传递到查询,即。参数化查询,这意味着你可以做一个循环,在你所传递的循环的每次迭代中,我都有一个不同的值,例如"A"。你可以这样做:

ExecuteSQL(

"SELECT Count(\"Field 1\") 

FROM \"Table 1\" 

WHERE \"Field 1\" = ?" 

;"";""; Table 1::Search Field) 

ExecuteSQL(

"SELECT Count(\"Field 1\") 

FROM \"Table 1\" 

WHERE \"Field 1\" = ?" 

;"";"";$searchValue) 

不过要小心,的ExecuteSQL不缓存记录,它拉,如果你在一台服务器/客户端环境是那么这种计算可以得到相当低迷如果你在表格中有很多记录,那么你就要通过广域网,或者两者兼而有之。我会建议试图以不同的方式获得计数。

+0

工作完美,谢谢! – 2015-01-10 01:57:10

+0

没问题:)很高兴我能帮上忙。 – 2015-01-10 12:29:11

0
Select count(*) from Table1 where Field1='A' 
+0

我试过这个,因为某些原因它不工作。回: ”?” – 2015-01-09 23:34:17

相关问题