- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS 選択クエリでの抽出条件について)
ACCESS 選択クエリでの抽出条件について
このQ&Aのポイント
- 在庫マスターと得意先マスターのテーブルを使用して、在庫マスターのデータを抽出条件により出力したいと思っています。在庫マスターは区分コード1の倉庫コードと区分コード3の店舗コードと分かれており、抽出条件は区分コード1の時は倉庫コード199と155は除きます。区分コード2の時は得意先マスターの形態コードから"1"と"2"のものを抽出します。
- デザインビューでクエリ作成するで選択クエリから抽出条件を入力してデータを出力できないのでしょうか。色々と試していますがエラーが表示され出力できません。例)If([ST_WHTYPE]="1",([dbo_STOCK].[ST_WHNO]) Not In ("199","155"), IIf([ST_WHTYPE]="3",[CU_SHOPTYPE]="1" Or [CU_SHOPTYPE]="2")) この場合は集計関数・・・・・含んでいないクエリを実行しましたと表示されます。他には複雑すぎるため評価できませんとかエラーが表示されます。選択クエリでの抽出条件ではできないのでしょうか。
- 在庫マスターと得意先マスターのテーブルを使用して、選択クエリで抽出条件によるデータの出力を試みていますが、エラーが表示され出力できません。たとえば、在庫マスターの区分コード1の倉庫コードに特定の値が含まれている場合は除外し、区分コード2の場合には得意先マスターの形態コードが特定の値と一致するデータのみを抽出したいと思っています。しかし、デザインビューでクエリを作成しても正しく出力されません。エラーメッセージには集計関数が含まれていないクエリを実行しましたと表示されます。また、複雑すぎるため評価できませんというエラーメッセージも表示されます。選択クエリでの抽出条件では実現できないのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こういう場合は、iifではなく、SELECTクエリのWHERE句で絞り込みます。 >抽出条件は区分コード1の時は倉庫コード199と155は除きます。 この条件は「区分コード=1 AND (倉庫コード<>199 AND 倉庫コード<>155)」です。 >区分コード2の時は得意先マスターの形態コードから"1"と"2"のものを抽出します。 この条件は「区分コード=2 AND (形態コード=1 OR 形態コード=2)」です。 上記2つを「OR」で繋いで、WHERE句に指定しましょう。 SELECT ~~~~~~~~ FROM 在庫マスター INNER JOIN 得意先マスター ON 在庫マスター.商品コード = 得意先マスター.商品コード WHERE (在庫マスター.区分コード=1 AND (在庫マスター.倉庫コード<>199 AND 在庫マスター.倉庫コード<>155)) OR (在庫マスター.区分コード=2 AND (得意先マスター.形態コード=1 OR 得意先マスター.形態コード=2))
お礼
chie65535 様 クエリを変更して解決致しました。 助かりました。 有り難うございました。 WHERE (((dbo_STOCK.ST_WHTYPE)="1") AND ((dbo_STOCK.ST_WHNO)<>"199" And (dbo_STOCK.ST_WHNO)<>"155")) OR (((dbo_STOCK.ST_WHTYPE)="3") AND ((dbo_CUSTOMER.CU_SHOPTYPE)="1")) OR (((dbo_CUSTOMER.CU_SHOPTYPE)="2"))