• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:突合せによるレコード結合について。)

突合せによるレコード結合について

このQ&Aのポイント
  • 上記のデータを13レコード取り込んだ際に、フィールド1の数値1もしくは2の判定によりフィールド1の数値2を含んだレコードの分だけフィールド1の数値1を含んだレコードを増やし、10レコードにするための方法についてアドバイスをお願いします。
  • アクセスのクエリで上記の要件を実現できるのでしょうか、それともVBで構築する方法が良いのでしょうか?お手数ですがアドバイスをお待ちしております。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

テーブル名を ★★ フィールド名を、左から F1 ~ F5 と仮定します。 また、提示あった内容の順が保証されるように、 オートナンバ「an」昇順で表示されているものとします。 以下をクエリの SQLビューに記述してどうなりますか SELECT * FROM ★★ AS Q1, ★★ AS Q2 WHERE Q1.F1=1 AND Q1.F1<>Q2.F1 AND Q1.an < Q2.an AND IIF(Exists (SELECT 1 FROM ★★ WHERE F1=1 AND an>Q1.an), Q2.an < (SELECT Min(an) FROM ★★ WHERE F1=1 AND an>Q1.an), Q2.an <= (SELECT Max(an) FROM ★★));

yairi1106
質問者

お礼

VBで考えてみたいと思います。 またよろしくお願いします。

yairi1106
質問者

補足

クエリ構文どうもありがとうございます。 SQL初心者ですが クエリデザイン→テーブル追加→フィールド1~5を設定表示の下→SQLビュー→ SELECT * FROM 13レコード AS Q1, 13レコード AS Q2 WHERE Q1.F1=1 AND Q1.F1<>Q2.F1 AND Q1.an < Q2.an AND IIF(Exists (SELECT 1 FROM 13レコード WHERE F1=1 AND an>Q1.an), Q2.an < (SELECT Min(an) FROM 13レコード WHERE F1=1 AND an>Q1.an), Q2.an <= (SELECT Max(an) FROM 13レコード)); テーブル名は13レコードになっています。 実行しますと SQLステートメントが正しくありません。 "DELETE、"INSERT"、"PROCEDURE"、"SELECT"または"UPDATEを使用して下さい。 となります。 SQLビュー操作手順や記述方法がおかしい場合 ご教授下さい。 お手数ですがどうぞよろしくお願いいたします。

関連するQ&A