2013-03-11 61 views
0

我是編程中的新手/新手,所以原諒我的天真。在MS Access 2013中,我有兩個表:表1和表2.我需要一種方法將[表1]。[字段6]中的輸入值與[表2]。[字段2]中的值進行比較,然後當它發現匹配時,在[表2] [字段3]中取對應的行值,並將其用於[表1] [字段13]中的表達式。如何匹配表1和表2中的值,獲取表2中的相應值,然後將其用於表1中的表達式中。

我想過使用「If」語句,但是兩個表中有10個潛在值正在進行比較,因此表達式會變得很大並且需要永遠計算。尤其是一旦表1開始獲得數百/數千條記錄。

有人能告訴我最簡單/最乾淨的方法嗎?

編輯 - 爲每個請求添加更多細節。

我們銷售商品的卡車,鐵路車,手提箱等。因此,當我們簽訂合同時,我們將輸入2輛卡車,3輛鐵路車,10輛集裝箱等。這些運輸方式中的每一種都有不同的重量,並且定價/銷售方式不同(美元/磅,美元/公噸等) )取決於轉運的模式。這個想法是當輸入合同時,它會查看[表1] [欄位6]中輸入的運輸方式,將其與主表的權重表(表2)進行比較,以獲得英鎊,噸等運輸方式(讓我們稱這個變量爲'x'),所以我可以使用該數字(以及表1中其他字段中的數量和價格)在新字段中生成總收入數字在表1中。=「x」[volume] [price]。

舉個例子,假設我們賣了3輛卡車。當卡車作爲運輸方式進入時,它會查找一輛卡車的體積(46,000磅),然後在表達式中使用該數字。 46,000 x 3卡車x 0.39美元/磅= 53,820美元。

我可以創建shell,並且可以在Revenue字段中創建表達式。我只是不知道如何將變量「x」(基於比較表格的權重)放入方程式中,而不用簡單地做一個「If」語句並將其包括進方程式「x」[volume] [price]表達中所有10種運輸方式。我認爲有一種方法可以使用表或查詢在表達式中返回「x」而不是10個不同的邏輯測試。

+2

添加一些示例數據和預期輸出可能會有所幫助;我很難解析這個問題。 – LittleBobbyTables 2013-03-11 14:55:14

回答

0

你可以試試這個SQL語句:

UPDATE [Table 1] INNER JOIN [Table 2] ON [Table 1].[Field 6]=[Table 2].[Field 2] SET [Table 1].[Field 13] = [Table 2].[Field 3];

您可以添加到[Table 2].[Field 3]* [Table 1].[Other field]或任意數量的字段,如果你想通過量價倍增。

您還可以添加WHERE [Table 1].[Field key] = "current_record_key"以確保您只更新當前條目。如果你不這樣做,它會更新整個表1,如果權重隨時間變化,這可能是一個問題。另一種選擇,如果WHERE [Table 1].[Field 13] IS NULL,這樣它只會更新總收入爲空的字段。

+0

非常感謝。這工作完美。指出WHERE命令也很有幫助,因爲它允許我添加一個單獨的約束。 – user2157163 2013-03-13 20:12:06

相關問題