0

好的,我有一个装运主表和一个单独的费用表。每个都有数百万条记录,它是从遗留系统进入 Filemaker 的,因此所有字段都定义为文本,即使它们可能是日期、数字等。

费用表中有一个日期字段。我想创建一个数字字段来代表年份。我可以使用 Middle 函数来解析字段并在计算字段中获取年份。但是将年份作为文字数字字段会不会更快,尤其是因为我要进行过滤和排序?那么如何将这个计算转化为它的值呢?我尝试将计算字段更改为数字,但它只是呈现空白。

4

3 回答 3

2

您的计算有问题,不应因为字段类型不同而变为空白。IE:

Middle("10-12-2010", 7, 4)

应该足够了,只要计算结果设置为数字。您也可以将其包装到 GetAsNumber(...) 中,但实际上,只要字段类型正确,就没有区别。

如果您有 FM Advanced,请尝试在数据查看器(工具 -> 数据查看器)中而不是在定义字段中设置计算,这样会更快,一旦您喜欢结果,您可以将其传输到字段中或进行一个替换。但是,从搜索/排序的角度来看,(存储的)计算和常规字段之间没有区别,因此替换是没有意义的,实际上更危险,因为没有办法撤消错误的替换。

于 2010-07-02T18:10:11.867 回答
1

这是我正在寻找的,来自 http://help.filemaker.com/app/answers/detail/a_id/3366/~/converting-unstored-calculation-fields-to-store-data

基本上,您不使用计算字段,而是创建一个空编号、日期或文本字段,并使用 “记录”菜单中的“替换字段内容”,然后将您的计算(或参考,或两者)放在那里。

于 2010-07-02T15:24:46.343 回答
0

根本不反对 FileMaker,但数百万条记录意味着 FileMaker 在这里可能是错误的选择。你的系统会很慢,很慢,很慢。FileMaker 非常适合工作组,没有办法更快地开发数据库应用程序。但 FileMaker 不擅长的一件事是处理大量记录。

顺便说一句,Mikhail Edoshin 是完全正确的。

于 2010-10-21T07:33:47.850 回答