• ベストアンサー

テーブルへのデータ投入について。

ABCテーブルにAAからAZまでのフィールドがあります。 ここに、XYZテーブルのデータを入れたいのですが、 XYZテーブルには、AA・AE・AG・AH・AMの5つのフィールドしかありません。 この場合、 insert into ABCテーブル (AA,AE,AG,AH,AM) select XYZテーブル.AA,XYZテーブル.AE,XYZテーブル.AG, XYZテーブル.AH,XYZテーブル.AM from XYZテーブル; としたら、エラーがおきますか?

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

使っているDBはAccessですか? 「パラメータが少なすぎます。1を指定してください。」 このメッセージはパラメータクエリにパラメータを与えないで実行すると、表示されます。 予約語、組み込み関数、管理下にあるテーブル名、フィールド名以外のシンボルは 全てパラメータとみなされます。大抵の場合はSQL文の誤りで、存在しない フィールドを記述したりすると、この状況になります。もう一度、SQL文を点検してみて下さい。

n_c63amg
質問者

お礼

有り難う御座います。 SQL文に間違いがありました。 訂正したらうまく出来るようになりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

列AA~AZということは、列ASが存在する。 列名としてのASなのか、エイリアス指定のための as なのか、混乱が生じているのでは?

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

登場しない列(例:AB等)に NOT NULL 属性などがの制約が無ければ大丈夫かな。

n_c63amg
質問者

補足

早速のご回答有り難う御座います。 現在、「パラメータが少なすぎます。1を指定してください。」 というエラーになるので、 VBAコード上ではなく、クエリの作成画面に SQLを入力し、作成しようとするとパラメータ入力の画面が 表示されます。ここで条件指定している値を入力すると、 追加しようとしてくれるのですが。 元データの中に抽出条件に一致するものがないと、 「パラメータが少なすぎます。1を指定してください。」のエラーが でる原因になりますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい

    挿入するフィールドの内1つだけを他のテーブルから取ってきた値を使いたいのですが、 insert into table1 (field1, field2, field3) values('a', (select field2 from table2 where field4='xxx'), 'b'); Oracleだと↑の書き方でいけるのですが、PostgreSQL(6.5.3)だとエラーになってしまいます。 2回もDBにアクセスしにいくのはいやなので、1文で書きたいです。上記以外で他の書き方をご存知でしたら教えてください。よろしくお願いします。

  • Access2000におけるテーブル追加について

    テーブル1にテーブル2の内容をすべて追加しようと思います。 二つのテーブルのフィールド項目は同じにしました。(テストなのでとりあえず番号と名前) マクロを使ってやろうと思い、アクションを「SQLの実行」とし、SQLステートメント には「INSERT INTO <テーブル1> SELECT<社員番号>,<名前>FROM<テーブル2>」 としました。 しかし、マクロを実行してみると「INSERT INTO 構文エラー」となってしまいます。 なぜなんでしょうか?

  • テーブルデータの並び替えについて。

    テーブルデータの並び替えについて。 環境:ACCESS2000 状況:テーブル2つ(マスターテーブル、マスターコピー)    メインフォーム上にサブフォームを置き、マスターコピーのデータを    表示させているのですが、そこで並び替えをする予定。    マスターテーブルのフィールド     種類  /  サイズ  /  商品名    ※マスターコピーも同様(マスターテーブルを全てコピーのため) 現在のコード: Dim db As Database Set db = CurrentDb db.Execute "DELETE * FROM マスターコピー" db.Execute "INSERT INTO マスターコピー SELECT * FROM マスターテーブル" SELECT 種類, サイズ, 商品名 FROM マスターコピー ORDER BY 種類, サイズ ←ここでエラー エラー内容・・・構文エラー まだACCESS未熟のため完全には理解できておらず ネット検索等で調べてコードを組んでいるため 何が間違っているのかわからず、ご質問させて頂きました。 お手数お掛けしますが、何卒ご教授の程宜しくお願い致します。

  • Select Distinctについて

    SQL文の質問です。フィールドがTable1に100つあるとします。 select distinct XYZ From Table1という文があるとします。 これだとXYZのフィールドしか参照していないことになると思います。 そうではなくて、他の99フィールドの値も参照(データにアクセスしたい)したいと思っています。 select distinct XYZ, * From Table1とSelect * from Table1みたいなことをやりましたがエラーが発生しました。他の99フィールドを参照する方法はあるでしょうか?

  • 1つのテーブルから複数のテーブルへのデータ振分け

    MySQLを使用して、tableAというテーブルのデータを tableB,tableC,tableDというテーブルに振り分けたいと思っています。 1日1回、自動的に行いたいと思っています。 たとえば、tableAのテーブル構成が下記のようなもので ================== name sex birth address phone email company ================== name,address,phoneはtableBに name,sex,birthはtableCに name,companyはtableDに分けるというような イメージです。 私の考えでは、下記のようなSQL文をPHPから呼び出して、タスクで 実行させてそれぞれ別のテーブルに振り分けようと思っている のですが、、もっと良いツールや方法があればお教えいただけ ませんでしょうか。 宜しくお願いいたします。 ---------------------------------------------------------------------------------------------------- INSERT INTO tableB (name,address,phone) SELECT tableA.name,tableA.address,tableA.phone FROM tableA AND INSERT INTO tableC (name,sex,birth) SELECT tableA.name,tableA.sex,tableA.birth FROM tableA AND INSERT INTO tableD (name,company) SELECT tableA.name,tableA.company FROM tableA; ----------------------------------------------------------------------------------------------------

  • 検索条件について

    サーバ上にある以下のようにLOAD DATAでデータベースに登録し LOAD DATA INFILE "/home/abc/test001.csv" INTO TABLE test FIELDS TERMINATED BY ','; ENCLOSED BY '"'; 登録することはできたのですが個々テーブル毎では検索できますが 複数のテーブルで検索するとうまく検索できません。 【個々のテーブルは問題なし】 select * from abc where xyz=12345; select * from 123 where xyz=12345; これですと問題なく検索がヒットします。 【複数のテーブルで検索するとうまくいかない】 select * from abc,123 where abc.xyz=123.xyz; これですと検索してもヒットしません。 ちなみにabcのxyzにある項目を「'」で括ると検索できませんでした。 データは"1","12345"でセットしています。 LOAD DATAのやり方が悪いのでしょうか? どなたか教えていただけませんでしょうか。

  • MySQLでのEXCEPTについて

    テーブルabcに +----+ | ID | +----+ | 001| | 002| | 003| | 004| +----+ テーブルxyzに +----+ | ID | +----+ | 002| | 003| | 005| +----+ のとき、 select * from abc except select * from xyz; として、abcに属し、xyzには属さないIDを出したいのですが、 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'selec t * from xyz' at line 3 のエラーが出ます。 何か方法はありますか?

    • ベストアンサー
    • MySQL
  • accessでテーブル作成時に出る型変換エラー 

    教えてください。 アクセスでテーブルを作成するとき、 (select 名前 from 名前テーブル into new名前 みたいな構文です)型変換エラーが出てしまっています。 (実際には名前とかではないです・・) おそらく数字のフィールドとかが混在しているからだとは思うのですが、 intoでテーブル作成するとき、型はどのように指定したらいいのでしょうか? 教えてください。

  • テーブルからテーブルの移行について

    あるテーブルから違うテーブルにデータを挿入しようとしています。 データ取得はPHPで作成していますが、 DBはPostgresです。 INSERT INTO VALUEで値を入れたいのですが、 テーブルの形式が違うため、フィールド数も違います。 VALUE(,,値,,) とするとエラーになってしまいます。 フィールド名で入れるしか方法はないのでしょうか? 何かよい案がありましたら、ご教授ください。 よろしくお願いいたします。

  • SQL シーケンスについて

    Orcle8iを使用しています。 INSERT INTO SELECT で別のテーブルのデータを追加したいのですが、そのうち1つフィールドには、シーケンスオブジェクトで取得した値を入れたいと思っていますが、INSERT文が作れません・・・。 例えば ----------------------------- INSERT INTO TABLE1(FIELD1,FIELD2,FIELD3)   SELECT --SELECT SEQ.NEXTVAL FROM DUAL??--     FIELD1_2,     FIELD1_3 FROM TABLE2 WHERE FILED1_2='X'; ----------------------------- という場合、TABLE1のFIELD1に連番を入れたいのですが 書き方が分かりません。 http://www.okweb.ne.jp/kotaeru.php3?q=347146 上記URLの質問に、シーケンスのSELECT文を副問い合わせにして・・・という回答があったのですが、それもよく理解できませんでした・・・(T_T) シーケンスのSELECT文をどう埋め込めば良いのでしょうか? どなかた教えていただけませんか? よろしくお願いします。

写真印刷が異常に遅い
このQ&Aのポイント
  • 買ったばかりのプリンタで写真A4印刷をwifi経由で行ったところ、出力まで1時間近くかかりました。解決策を教えてください。
  • お使いの環境はWindows10で無線LAN接続、電話回線はひかり回線です。プリンタの写真印刷が遅い問題についてアドバイスをいただけると助かります。
  • ブラザー製品のDCP-J1200Nを使っていますが、写真印刷が異常に遅くて困っています。出力まで1時間近くかかるため、効率的な解決策をお教えいただけるとありがたいです。
回答を見る