WHERE句にクエリ式を渡すときに問題が発生しました。 Accessは新しい列(式)の名前を取得せず、その値の全体を表示します。簡略化されたクエリは以下のとおりです。WHERE句のMS Accessクエリ式
WHERE句の2番目の部分には、[オフセット]列の名前が含まれていることがわかります。これは問題を引き起こしています。結果は、DateAdd/Offset値(DATE)が別のテーブルにある値よりも前にあるかどうかを確認する必要があります。どのようにこれを処理するための任意のアイデアですか?ありがとうございました!
編集:私は明示的に表現を入れようとしましたが、私は[LT]の値を求められます。 Accessがソーステーブルの列名以外の列名を認識しないようです。
編集:HAVINGはクエリ式エラーでデータ型が一致しません。ここで私が働いているものです:
SELECT po.Item,
ist.SKU,
po.[EX-FACTORY DATE],
Min(lt.Intransit_LT) AS LT,
po.Ship_Method
FROM (((tbl_Item_PO AS po
LEFT JOIN tbl_ItemSKUType AS ist ON po.item = ist.Item)
LEFT JOIN Supplier_and_LT AS lt ON po.Supplier = lt.Supplier
WHERE (((ist.SKU) Is Not Null)
GROUP BY po.Item, ist.SKU, po.[EX-FACTORY DATE], po.[QTY PER SHIPMENT], po.WHSE, wh.Region, po.Ship_Method
HAVING (DateAdd('d',MIN(lt.[Intransit_LT]),po.[EX-FACTORY DATE]))<(select top 1 AOD from tbl_Date)
明示的表現を与えるようにしてください: 'AND(DateAdd関数( 'D'、[LT]、PO [EX-FACTORYのDATE])<(からトップ1 AODを選択します。 tbl_Date))) 'を実行します。 'Offset'は多くのSQL方言(単にJET/Ace SQLではない)のキーワードなので、カラム名として使うのは避けるべきですが、あなたのエラーを引き起こしたのかどうかはわかりません。 –
ありがとうございましたが、私も同じ問題でこれを試しました。式を明示的に使用すると、Accessは[LT]の値を求められます。理由は分かりませんか? – ddelpinal
別の悪い習慣に気付きました。あなたはテーブルのために 'As lt'を使用しており、次にカラムの' As LT 'を使用しています。 SQLでは、通常、大文字小文字は無視されますが、エラーは発生しません。 –