うまくいけば、簡単に質問できますが、私の心は今日の午後にはうまく機能しません。私は、次の表を持っている:すべての部品が在庫されているアイテムを見つける
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]));
これはONHANDは量よりも大きく、すべてのカクテルとの関連成分のリストが表示されます、しかし、私は唯一のカクテルを一覧表示したいですハンド。
Hosは他のテーブルに関連するtblUnitConversionですか? 「tblIngredient」の行に匹敵するために、tblCocktailIngredientの行の金額に100を掛けなければならないと指定しようとしていますか? – jhenderson2099
実際、tblIngredientの行のOnHandAmountには、tblCocktailIngredientの「Amount」フィールドと比較するために100を掛けなければなりません。 – NickHeidke
あなたは「NO成分が必要な量よりも少ないところ」、すなわち「存在しない」などと言う必要があります。 – Ben