2012-08-07 93 views
0

我現在嘗試使用Filemaker Pro 12,沒有以前的FM經驗,雖然其他基本的數據庫經驗。我遇到的問題是嘗試爲跨越一對多關係的報表執行過濾查詢。這是一個例子;帶計算字段和過濾的FileMaker數據庫設計

的2個表:

Sample_Replicate 
    PK 
    Sample FK 
    other fields 

Weights 
    Sample_Replicate_FK (linked to PK of Sample_Replicate) 
    Weight 
    Measurement type (tare, gross, dry, ash) 
    Wash type (null or from list of lab assays) 

我想創建顯示報告:(毛重 - 皮重),(幹皮重)/(毛皮重),(灰皮重)/(總)和(幹皮重)/(毛皮皮重),對於所有非空洗滌類型的乾重。

似乎FM要我爲這些值中的每一個創建列(這是可行的,因爲實驗室分析列表變化最小並且更新數據庫將是可接受的,但不是優選的)。我試圖粗暴重量,去皮重量%等添加到Sample_Replicate表,但只有當我使用計算字段和方法返回的第一條記錄(去皮重量):

tare wt field = Case (Weights::Measurement type = "Tare"; Weights::Weights) 
gross wt field = Case (Weights::Measurement type = "Gross"; Weights::Weights) 
etc... 

這也似乎是當我添加條件時失敗:

and Is Empty(Weights::Wash type) 

有人能指出我在這個問題上的正確方向。由於

編輯: 我碰到這個傳來:http://www.filemakertoday.com/com/showthread.php/14084-Calculation-based-on-1-to-many-relationship

看來,我可以爲測量的每種組合〜15個計算字段和清洗上的權重表類型,然後做這些列的總和在將這15列添加到表格後的sample_replicate中。這似乎絕對asinine。沒有更好的方法來過濾FM中的一對多關係的結果嗎?

回答

0

添加皮重量字段等的權重表,但在隨後的Sample_Replicate表中添加鈣場來獲取所有相關的值

前的總和:加場「總重量皮重」是「總和(重量::皮重量)」

+0

這是從我添加的編輯的建議。我做了這個,從而增加了15個計算列。那裏肯定有更好的方法。 – 2012-08-09 02:11:29

+0

代替calc可以設置腳本並使用ExecuteSQL從權重表中獲取值。您仍然必須在sample_replicate表中包含字段來保存查詢結果,但這會讓您遠離權重表中的計算字段。 檢出FileMaker Pro中的ExecuteSQL 12幫助 – andyknas 2012-08-10 22:02:08

1

怎麼樣的結構如下:

Replicate 
    ID 
Wash Weight 
    Replicate ID 
    Type (null or from list of lab assays) 
    Tare 
    Gross 
    Dry 
    Ash 
    + calculated fields 

我想你只計算出相同的洗滌類型的重量比。重量類型(皮重,毛重等)不僅僅是標籤。既然你在公式中使用它們,他們更像角色,所以我認爲他們應該擁有自己的領域。