Filemaker 13 在不相关表中的计算
Filemaker 13 calculations among unrelated tables
我正在使用这个数据库,其中有几个表存储有关收据和费用的信息。
我想做的是生成一种格式,我把总余额放在其中,即 (Table1.Receipts_total + Table2.Receipts_total) - ( Table3.Expenses_total + Table4.Expenses_total )
这里的主要问题是这些表彼此不相关,在 FileMaker 中似乎很难处理这方面的问题。
我认为有一种方法可以运行低级 "raw" SQL 语句,但我无法做到。
首先,我建议您规范化您的数据结构 - 因为您对当前数据结构所做的任何操作都只是一种 hack。
无论如何,即使不使用 ExecuteSQL()
也很容易得到你想要的图形 - 只需 运行 一个简单的脚本,如:
Go to Layout [ Table1.Receipts ]
Show All Records
Set Variable [ $balance; Value:Table1.Receipts::sTotalAmount ]
Go to Layout [ Table2.Receipts ]
Show All Records
Set Variable [ $balance; Value:$balance + Table2.Receipts::sTotalAmount ]
Go to Layout [ Table3.Expenses ]
Show All Records
Set Variable [ $balance; Value:$balance - Table3.Expenses::sTotalAmount ]
此时,$balance
变量将包含请求的数字,您可以用它做任何您想做的事情。
注意:sTotalAmount
字段是在三个 table 中的每一个中定义为 Total of [Amount]
的汇总字段。
或者,您可以使用 x
关系运算符将三个 table 相关联(即创建笛卡尔积关系),然后使用计算,例如 Table1.Receipts
table, =
sTotalAmount + Table2.Receipts::sTotalAmount - Table3.Expenses::sTotalAmount
但我不建议您将其作为 "live" 计算字段放置在布局上,因为随着交易数量的增加,这会变得越来越慢。
我正在使用这个数据库,其中有几个表存储有关收据和费用的信息。
我想做的是生成一种格式,我把总余额放在其中,即 (Table1.Receipts_total + Table2.Receipts_total) - ( Table3.Expenses_total + Table4.Expenses_total )
这里的主要问题是这些表彼此不相关,在 FileMaker 中似乎很难处理这方面的问题。
我认为有一种方法可以运行低级 "raw" SQL 语句,但我无法做到。
首先,我建议您规范化您的数据结构 - 因为您对当前数据结构所做的任何操作都只是一种 hack。
无论如何,即使不使用 ExecuteSQL()
也很容易得到你想要的图形 - 只需 运行 一个简单的脚本,如:
Go to Layout [ Table1.Receipts ]
Show All Records
Set Variable [ $balance; Value:Table1.Receipts::sTotalAmount ]
Go to Layout [ Table2.Receipts ]
Show All Records
Set Variable [ $balance; Value:$balance + Table2.Receipts::sTotalAmount ]
Go to Layout [ Table3.Expenses ]
Show All Records
Set Variable [ $balance; Value:$balance - Table3.Expenses::sTotalAmount ]
此时,$balance
变量将包含请求的数字,您可以用它做任何您想做的事情。
注意:sTotalAmount
字段是在三个 table 中的每一个中定义为 Total of [Amount]
的汇总字段。
或者,您可以使用 x
关系运算符将三个 table 相关联(即创建笛卡尔积关系),然后使用计算,例如 Table1.Receipts
table, =
sTotalAmount + Table2.Receipts::sTotalAmount - Table3.Expenses::sTotalAmount
但我不建议您将其作为 "live" 计算字段放置在布局上,因为随着交易数量的增加,这会变得越来越慢。