希望能夠相當容易的查詢,但我的思想今天下午不工作。我有如下表:查找項目所有部件有庫存
tblCocktail
CockTailID CocktailName
1 Alexander
tblCocktailIngredient
CocktailID IngredientID Amount UnitID
1 1 3 1
1 2 3 1
1 3 3 1
tblIngredient
IngredientID IngredientName OnHandAmount OnHandUnitID
1 Cognac .75 2
2 Creme de Cacao .9 2
3 Cream .5 2
tblUnitConversion
FromUnitID ToUnitID Factor
1 2 100
我想要做的就是找到雞尾酒我可以,因爲我有足夠的所有成分的手的名單。我有以下查詢:
SELECT tblCocktail.CocktailName
FROM tblCocktail INNER JOIN (tblIngredient INNER JOIN (tblCocktailIngredient INNER JOIN tblUnitConversion ON tblCocktailIngredient.UnitID = tblUnitConversion.ToUnitID) ON (tblIngredient.IngredientID = tblCocktailIngredient.IngredientID) AND (tblIngredient.OnHandUnit = tblUnitConversion.FromUnitID)) ON tblCocktail.CocktailID = tblCocktailIngredient.CocktailID
WHERE ((([tblCocktailIngredient].[Amount]*[Factor])<[tblIngredient].[OnHandAmount]));
這將給所有的雞尾酒及相關食材的現有量高於量大的名單,但是,我只想列出雞尾酒,其中所有成分上有足夠的數量手。
Hos是與其他表相關的tblUnitConversion?您是否試圖指定tblCocktailIngredient數量中的行數量必須乘以100才能與「tblIngredient」中的某行相比? – jhenderson2099 2012-03-26 20:32:53
實際上,來自tblIngredient的行的OnHandAmount必須乘以100才能與tblCocktailIngredient上的「Amount」字段進行比較。 – NickHeidke 2012-03-26 20:38:01
您需要說的是「哪裏的成分的含量少於手頭所需的量」,即「不存在」或類似情況。 – Ben 2012-03-26 22:29:45