INSERT時にデータ登録とmaxの発番がしたい

このQ&Aのポイント
  • 入力フォームに、入力した後で、DBに登録した際に、依頼Noに、既にあるデータのMAX+100の値を登録したいです。
  • 入力フォームのデータと登録と同時に、依頼Noを振りたいのですができません。
  • 根本的に間違っていると思うので、いい方法をご教授いただけたらと思います。
回答を見る
  • ベストアンサー

INSERT時にデータ登録とmaxの発番がしたい

<環境> SQLSERVER 2012 入力フォームに、入力した後で、DBに登録した際に、 依頼Noに、既にあるデータのMAX+100の値を登録したいです。 依頼NoにMAX+100の連番をふることは以下の方法でできたのですが、 INSERT INTO テーブル1(依頼No) SELECT MAX(依頼No)+100 AS NEW_ID FROM テーブル1 入力フォームのデータと登録と同時に、依頼Noを振りたいのですができません。 以下のように書いてみましたが、 根本的に間違っていると思うので、いい方法をご教授いただけたらと思います。 ※iraibi は入力フォームで、依頼日を入力した値です。 INSERT INTO テーブル1 (依頼No,依頼日) VALUES ('SELECT MAX(依頼書No)+100 AS NEW_ID FROM テーブル1','" & iraibi & "') 宜しくお願いいたします。

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

INSERT INTO テーブル1(依頼No, 依頼日) SELECT MAX(依頼No)+100, '2013/05/13' FROM テーブル1

taka78ube
質問者

お礼

回答ありがとうございました。 問題なく動作いたしました。 ありがとうございました。

関連するQ&A

  • あるカラムのMAX値+1をINSERTしたい。

    DB2環境です。 ある列のMAX値+1をINSERTしたいと思っています。 INSERT INTO TableName (atai1) Values ((SELECT MAX(BILLSUBNO)+1 FROM TR0400)) このように書いてみたのですが、「入力ホスト変数または パラメーター*Nで変換エラー」 と言われてしまい、コミットすることが出来ません。 +1を除けば出来るのですが、DB2ではVALUESの中で演算をすることは できないのでしょうか? もし方法がありましたら、教えてください。

  • 既存テーブルから別テーブルへのデータコピー時、発番を行いたい

    お世話になります。 テーブルからテーブルへのデータコピーをしたいのです。 たとえば、 ワークテーブルから売上テーブルへ データをコピーするとします。 売上テーブルには、主キーとなる「売上NO」(10桁)という項目があります。 ワークテーブルには売上NOはないので、データ移行時に売上NOを作成してやらないといけません。 一文だけで片付けようとすればどう書けば良いのでしょう?というか一文では無理なのでしょうか? insert into 売上テーブル (売上NO,販売単価......) select (select right('0000000000' + (convert(nvarchar,max(売上NO) + 1)),10) from 売上テーブル) ,販売単価..... from ワークテーブル とやってみましたが、ダメでした。一括でデータ追加に行くので主キー重複エラーとなりました。 どなたかご教授ください。お願いします。

  • 入力値と外部キーをINSERTするには

    追加したいカラムが3つあるとしまして、そのうち2つはフォームからの入力値で、残り1つは別テーブルのIDをWHEREで引っ張ってきてINSERTしたい場合、INSERT...VALUES()とINSERT...SELECT構文を組み合わせないとダメかと思うのですが、組み合わせるとうまくいきません。2つの文に分けるしかないのでしょうか? やりたいことは下の感じのSQLです。が、解釈してくれません。 INSERT INTO room(A, B, C) VALUES (1, 2, SELECT other_table.id FROM other_table WHERE other_table.id = 1");

    • ベストアンサー
    • MySQL
  • Insert文で・・・

    失礼します。SQL初心者なので質問します。 Insert into Aテーブル Select X , Y , Z From Bテーブル というSQLがあり、Aテーブルの列数を3から4にした際、AテーブルへのInsertの項目を、BテーブルからSelectされたX,Y,Z以外に普通の変数αも新たに作成した4つめの項目として同時にInsertしたい場合、どのようなSQLにすれば良いでしょうか? Insert into Aテーブル (Select X , Y , Z From Bテーブル),α みたいに都合良くはいきませんよね??

  • 指定した回数INSERTをしたい

    Visual Web Developer 2005 Expressを使用しています。 NO(自動採番)と商品というテーブルがあり、入力フォームでテキストボックス1に「飴」と入力し、テキストボックス2に「5」と打って保存すると下記のような結果になるようなSQL文はありますか?それともフォーム側で何か処理が必要でしょうか? 複数インサートで調べましたがINSERT INTO SELECTはデータ元が別テーブルなので使用できそうにありませんでした。。 No|商品   ――――  01|飴 02|飴  03|飴 04|飴 05|飴 うまく説明できているかわかりません。すみません。

  • INSERT文で発行したオートナンバーを取得したい

    いつも勉強させて頂いています。SQL文について困っています。 -環境- .NET FreamWork2.0 VB SQLSERVEREXPRESS -SQL- インサート時にオートナンバーを取得してデータを追加しているのですが、追加後にオートナンバーの値を戻す(取得する)ことは可能でしょうか?SQL文は下記です。 INSERT INTO マスタテーブル VALUES((SELECT MAX(オートナンバー) + 1 FROM マスタテーブル), 商品名・・・・ 上記で登録されたオートナンバーを別テーブルに格納したい為です、リアルタイムで処理しますので、発行したオートナンバーが即時に必要です。 テーブル更新時に  Dim Ret_Table As DataTable = AS_Cmd.ExecuteScalar() とするとテーブル内容がNothingになります。 他の方法も御座いましたら教えて頂けると幸いです。宜しくお願い致します。

  • 変数のinsertに関しまして

    MySQLのインサートに関して質問です。 2つの値を登録したい場合、 下記のように対応すれば、 データの挿入は通常どおり完了しますが、 insert into テーブル名 (フィールド1, フィールド2) values (値1, 値2);  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 私の場合は、 「ken_name」と「machi_name」という変数を、 上記でいうところの、 「値1」と「値2」に入力したいと思っています。 変数の指す部分は、 それぞれ30文字程度の英数字です。 プログラム内で、 以下のように、 インサートのクエリー処理を行ってみたら、 DB接続も正常に出来ているし、 エラーとかも一切出ていないのですが、 DB内のテーブルに何も登録されていませんでした。 insert into テーブル名 (フィールド1, フィールド2) values (ken_name, machi_name);  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ やり方としては、合っていますでしょうか? 何かアドバイスいただけると嬉しいです。 宜しくお願い致します。

  • selectの内容によって、登録するカラムを変えたい

    selectの内容によって、登録するカラムを変えたい selectであるテーブルからある値Aをとってきます。 値Aが1の時は別テーブルの金額1に登録、2の時は金額2に登録、3の時は金額3に登録 という処理を行いたいです。 同一レコードに対して複数の金額がある事があります。 テーブル1(取得テーブル) ------------------ キー 値A 金額 1   1  500 1   3  300 2   3  200 ------------------ テーブル2(登録テーブル) ------------------ キー 金額1 金額2 金額3 1   500  0  300 2    0  0  200 ------------------ いま、 insert into テーブル2 SELECT 項目 from テーブル1 というように1つのSQLで、登録、削除をしようとしていますが 可能でしょうか?。方法がよく分かりません。

  • ACCESSでテーブルのMAX値(文字列を除く)をやりたい

    ACCESS2000で1テーブル内の項目のMAX値を取りたいのですが、数値ではないのは除外したいです。 どのようにSQLを組んだらいいのでしょうか。 ex) テーブル名:a フィールド名:ID(string型) +--+ |01| +--+ | 2| +--+ |03| +--+ |04| +--+ |05| +--+ |06| +--+ |R1| +--+ 上記の項目でMAX値06を取りたいのですが SQL>select MAX(ID) as MaxID from a とすると「R1」がMAX値になる。 「06」をMAX値として取りたい。

  • Insert Into Select での重複について

    DB:SQLServer2000 こんにちは お世話になっております。 トランザクションのテーブルA から ワークのテーブルBへInsert Into Select を使用してデータを格納しているのですが、その際に重複が発生してしまいます。 テーブルA 主キーあり テーブルB 主キーなし Delete B Insert into B select 項目1,項目2,・・・ from A With(Nolock) where 日付項目 = 20080101 テーブルAの主キー項目は全てテーブルBへInsertしており、Insert完了後のテーブルBの中身を見ると、まれに全く同じデータが2件出来ていることがあります。 このInsert into selectが実行されている間に、テーブルAに対して登録更新が行われることもあります。 色々と試してはいるのですが、原因が特定できずに困っております。 もし何かお気づきになられる方がいらっしゃいましたら、ご教示下さい。 よろしくお願い致します。