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

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

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

1,住所A,氏名,電話番号,備考 2,金額B,金額,注文番号,備考 2,金額C,金額,注文番号,備考 1,住所D,氏名,電話番号,備考 2,金額E,金額,注文番号,備考 2,金額F,金額,注文番号,備考 2,金額G,金額,注文番号,備考 1,住所H,氏名,電話番号,備考 2,金額I,金額,注文番号,備考 2,金額J,金額,注文番号,備考 2,金額K,金額,注文番号,備考 2,金額L,金額,注文番号,備考 2,金額M,金額,注文番号,備考 上記のようなデータを13レコード取り込んだ際に フィールド1の数値1もしくは2の判定により フィールド1の数値の2を含んだレコードの分だけ フィールド1の数値の1を含んだレコードを増やし 下記のように10レコードにするには アクセスのクエリで出来るのでしょうか? それともVBで構築する方法が良いのでしょうか? お手数ですがアドバイスお待ちしております。 1,住所A,氏名,電話番号,備考,2,金額B,金額,注文番号,備考 1,住所A,氏名,電話番号,備考,2,金額C,金額,注文番号,備考 1,住所D,氏名,電話番号,備考,2,金額E,金額,注文番号,備考 1,住所D,氏名,電話番号,備考,2,金額F,金額,注文番号,備考 1,住所D,氏名,電話番号,備考,2,金額G,金額,注文番号,備考 1,住所H,氏名,電話番号,備考,2,金額I,金額,注文番号,備考 1,住所H,氏名,電話番号,備考,2,金額J,金額,注文番号,備考 1,住所H,氏名,電話番号,備考,2,金額K,金額,注文番号,備考 1,住所H,氏名,電話番号,備考,2,金額L,金額,注文番号,備考 1,住所H,氏名,電話番号,備考,2,金額M,金額,注文番号,備考

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

  • ベストアンサー
  • 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

  • ファイルメーカーPRO5で、表示させたいレコードと表示させたくないレコードを作るには?

    100件のレコードの内、50件の男性に該当するものだけを表示させ印刷するレイアウトを作りたいのですが、どうすればよいでしょうか?レコードには男性、女性、その他があります。フィールドは、住所、氏名、電話番号です。

  • アクセスでのレコード移動

    アクセス2010でご質問がございます。 00001,郵便番号,住所,氏名,TEL 00002,郵便番号,住所,氏名,TEL 00003,郵便番号,住所,氏名,TEL 00004,郵便番号,住所,氏名,TEL 00005,郵便番号,住所,氏名,TEL 00006,郵便番号,住所,氏名,TEL 00007,郵便番号,住所,氏名,TEL 00008,郵便番号,住所,氏名,TEL 00009,郵便番号,住所,氏名,TEL のようなデータが存在したとします。 下記のようにデータを移動したいのですが 00001,郵便番号,住所,氏名,TEL,00004,郵便番号,住所,氏名,TEL,00007,郵便番号,住所,氏名,TEL 00002,郵便番号,住所,氏名,TEL,00005,郵便番号,住所,氏名,TEL,00008,郵便番号,住所,氏名,TEL 00003,郵便番号,住所,氏名,TEL,00006,郵便番号,住所,氏名,TEL,00009,郵便番号,住所,氏名,TEL クエリ等で、レコード移動は可能なのでしょうか?? ※今回の例ですと全9レコードありますので3等分にしたいので 9÷3で3レコードになります。 アドバイス宜しくお願い致します。

  • 重複した項目を削除するマクロ

    エクセルで同じID番号を持つ項目が2行あったとして、1行だけ残してもう1行は削除する、といったマクロを教えてください。 例: A列 B列 C列 D列 1 氏名  ID=150  住所  備考 2 氏名  ID=150  住所  備考 3 氏名  ID=10   住所  備考 4 氏名  ID=10   住所  備考 5 氏名  ID=10   住所  備考    ↓↓↓↓↓↓↓↓↓↓↓↓ A列 B列 C列 D列 1 氏名  ID=150  住所  備考 2 氏名  ID=10   住所  備考 という表にしたいのです。 アドバイスよろしくお願いします。

  • エクセルで住所録を分類する方法は

    いつもお世話になっています。(エクセルは2002です)   A     B       C   D   E 1 郵便番号  住所      氏名  地区  備考 2 100   A県B市C町  C氏  E   G 3 100   A県B市D町  C氏  E   G 4 200   B県      D氏  F   H 上記のような表(シート1)があります。 シート2にA県、シート3にA県以外を郵便番号・住所・氏名・地区・備考を分けて、シート2の表をシート4にB市、シート5にB市以外に郵便番号・住所・氏名・地区・備考を分けて、シート4の表をシート6にC町、シート7にC町以外に郵便番号・住所・氏名・地区・備考を分ける方法を教えてください。 うまく説明できませんがよろしくお願いします

  • ACCESS2000 テキストフィールドの一括化

    ACCESS2000で経理関係のDBを作成中です。入力テーブルの構造はおおよそ下記のとおりです。 フィールド1:科目コード(数値型) フィールド2:金額(数値型) フィールド3:備考(テキスト型) 今、科目コードごとに集計するためのクエリー及びレポートを作ろうと思っていて、金額の合計はできるのですが、備考欄も科目コード単位でまとめたいと思っています。どうすればよいのでしょうか。 (テーブル)       科目コード 金額 備考 レコード1:11    100 AAAAA レコード2:11    200 BBBBB レコード3:12     50 CCCCC レコード4:12    500 DDDDD            ↓ 集計(クエリ、レポート)       科目コード 金額の合計 備考の列記       11    300     AAAAABBBBB       12    550     CCCCCDDDDD こんな感じです。 よろしくお願いいたします。

  • テーブルの結合?

    accessのテーブル2つを1つのテーブルにする方法を教えていただけないでしょうか。 《テーブルA》 氏名,住所,電話番号,・・・・ 《テーブルA》 氏名,健康保険番号,雇用保険番号,・・・・ 氏名は、テーブルAとテーブルBで一致しています。 とりあえず、1個のテーブルにしてしまいたいのですが。

  • Javaのコード

    プログラムのウルトラ初心者です。こんな質問をしてちょっと恐縮です。 環境 ・Windows2000 Server ・Oracle 9i 下記のようなcsvファイルがC:\にあります。 ==========test.csv============ A1, なまえ, 住所, 電話番号, 備考, A2, なまえ3, 住所3, 電話番号3, 備考3 このcsvファイルを、OracleDBのテーブル(テーブル名TESTTABLE)に格納しているレコードと比較し、insertもしくはupdate文を発行します。 ========TESTTABLE========== 列名 a b c d e レコード A2, なまえ2, 住所2, 電話番号2, 備考2 a列にA1はないので、A1についてはinsert。 A2についてはレコードがあるので、update。 この仕様のプログラムをJavaで書きたいです。 全く書いたことがないのですがコードを教えて下さい。 叩き台さえあれば、あとは何とかしようと思っているので。。。

    • ベストアンサー
    • Java
  • Excelでの名簿印刷・用紙一行目に項目を表示するには?

    お世話になります。 Excel2003での質問です。 A列に氏名、Bに電話番号、Cに住所、Dに備考欄がある名簿を印刷したいと思います。 名簿リストは数百人分ありますので、当然印刷紙数は複数枚にわたります。 このとき、各紙面の一行目に項目(氏名・番号・住所・備考)を自動的に挿入し、プリントアウトすることは可能でしょうか。 皆様のお知恵を拝借したいと存じます。 よろしくお願いいたします。

  • MySQLで特定のヒラガナ以降のレコードを選択した

    Windows版のMySQL v5.5.27です。 電話帳アプリを考えていますが、氏名、ヒラガナ、電話番号などなどのフィールドがあります。 そこでヒラガナが「か」から始まるレコードを選択したいと思っていますが、SELECT文が思いつかないのでご教授願います。 特に「か」だけではなく あ・か・さ・た・・・ というレコードを選択です。 単純に「あ」、「か」、「さ」・・・と選択して蓄積しても良いのですがスマートなSELECTを書きたいと思って質問しました。

    • ベストアンサー
    • MySQL
  • エクセルで作成した一覧表をカード形式にしたい。

    エクセルで作成した一覧表をカード形式にしたいのですが 例えばsheet1の 列1のセルA、B、C、D、E、Fに 山田さんの住所、氏名、年齢、職業、電話、備考 列2にセルA、B、C、D、E、Fに 佐藤さんの住所、氏名、年齢、職業、電話、備考、 列3にセルA、B、C、D、E、Fに 大山さんの… (以降は同様の繰り返し)を入力したとき、 sheet2の 列1のセルA、Bに山田さんの住所、氏名、 列2のセルA、Bに山田さんの年齢、職業、 列3にセルA、Bに山田さんの電話番号、備考、 列4にセルA、Bに佐藤さんの住所、氏名、 列5にセルA、Bに佐藤さんの年齢、職業、 列6にセルA、Bに佐藤さんの電話番号、備考、 列7にセルA、Bに大山さんの住所、氏名、 列8にセルA、Bに大山さんの年齢、職業、 列9にセルA、Bに大山さん電話番号、備考、 列10… と表示されるようにしたいのですが sheet2のA1、B1、A2、B2、A3、B3セルに数式を入力し 列4以降にコピーしても飛び飛びになってうまくいきません。 入力規則かと6列目まで増やしてコピーしても 7列目以降に正しくコピーできません。 何か関数が必要なのでしょうか?過去の質問も検索しましたが よく分かりません。よろしくお願いします。