我正在嘗試實施一些現有Access數據庫,這些更改將允許估計我的僱主(我們是製造飛行案例的工業公司)的裁剪時間。這隻適用於某些類型的組件;我們有一個Stock
表,其中包含每個庫存項目的信息,包括它的類別。 A Specification
用於建立估計/報價的表以及名爲的表,其中包含附加到規範的庫存項目清單。 Stock INNER JOIN [Spec Components] ON Stock.ID = [Spec Components].[Stock ID]
使用MS Access從兩個表中左外連接
Specification INNER JOIN [Spec Components] ON Specification.SpecID = [Spec Components].[Spec ID]
我的問題是,我只是想,如果該項目被列爲「板」,「擠出應用刀次項目中:
該表可如下加入「,」混合物「等(這是可以通過Stock.Category
查詢的信息),並且根據我們引用的物品的類型使用不同的變量,例如,製造蓋盒的面板可能需要18次切割,但可能需要不同的情況要求26.案件類型是可以通過Specification.CaseType
檢索的東西,並確定哪種類型的cas我們正在引用。
最初我試圖解決這個問題,在SQL查詢中使用嵌套條件語句的快速和骯髒的解決方案,但最終得到錯誤「查詢太複雜」,因爲嵌套的ifs數量有限制。
什麼我試圖現在是使用一個單獨的表包含了不同的切割/設置等的列表
Category | CaseType | Setups | Cuts | PCID
--------------------------------------------
Panels | Lidmaker | 2 | 32 | 1
Panels | Fab Lid | 4 | 16 | 1
Extrusion | Lidmaker | 1 | 24 | 1
然後我需要能夠在適用情況下訪問此表的內容,但仍然能夠從我的其他表格中檢索表格的內容不適用(對我來說,這表示需要在此表格上進行左外連接)。當我運行查詢我得到這個消息
不過,但我真的不明白它告訴我做什麼,或者如何在地球上:
我可以在MS Access做到這一點使用設計視圖我應該分開查詢,也許我很愚蠢?
查詢本身是這樣的:
SELECT [Spec Components].Qty, Specification.Height, Specification.Width, Specification.Depth, IIf(Cutting.Cuts>0 And Cutting.Setup>0,(Cutting.Cuts*Stock.CutTime)+(Cutting.Setup*Stock.SetupTime),0)
FROM ((Stock INNER JOIN [Spec Components] ON Stock.ID = [Spec Components].[Stock ID]) INNER JOIN Specification ON [Spec Components].[Spec ID] = Specification.SpecID) LEFT JOIN Cutting ON (Stock.Category = Cutting.Category) AND (Specification.[Case Type] = Cutting.CaseType)
ORDER BY [Spec Components].[Stock ID];
如果規範最終會使用INNER JOINS返回庫存,則不能使用從Cutting到Specification的LEFT OUTER JOINS。它使你的外部連接不明確。您可能需要設置兩個單獨的查詢,然後將它們連接在一起以獲取所需內容。 –