• 締切済み

Accessについて 教えてください。

お世話になります。 Access初心者で全く分かりません。 更新クエリのupdate について教えて欲しいのですが、 一つのカラムに、他から持ってきたカラムの値に頭0埋めにして10文字にします。 それを3つ並べ、最後に0を加えたものを入れたいと思います。 計31文字ですね。 テーブル A 入れたいカラム B 使うカラム名 a,b,c として その場合のSQL文を教えてください。 参考に他のSQLシステムでの文を載せておきます。 update A set A.B = @Repeat('0',10-@length(A.a))||A.a ||@Repeat('0',10-@length(A.b))||A.b || @Repeat('0',10-@length(A.c))||A.c || '0' ; それではよろしくお願いします。

みんなの回答

  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

えーっと UPDATE A SET A.B = Format(A.a,"0000000000") & Format(A.b,"0000000000") & Format(A.c,"0000000000") & "0"; ってことですかね。

thimys
質問者

お礼

回答ありがとうございます。 この場合ですと、NULLの場合が空白になってしまうんですよね。 あと、スペースが入っていた場合も、0埋めにもならないしで…

関連するQ&A

  • ACCESS 以下のように変更するSQL式を教えて

    Microsoft Accessで以下のように変更するSQL式を教えてください。 (Windows10 , Access2016) 以下のようにテーブル(TABLE1)には、 A,B,Cの3つのフィールドがあり Aには番号が入っています。重複した番号もあります。 Bには0~9までのいずれか1つの数字が入っています。 Cにはa,b,cのいずれか1つの文字が入っています。 Aの各値に対してBの値が0のレコードは1個だけです。 (例)TABLE1   A  B  C   1  0  a   1  9  b   1  2  c   2  1  b   2  3  a   2  0  c   2  7  c   3  1  a   3  0  b    :   :   :  999  0  a    :   :   : このようなテーブル(TABLE1)に対して、 Aの各値毎に、 Bの値が0以外のレコードのCの値を Bの値が0のレコードのCの値に変更する SQL式 (ACCESSのクエリデザインのSQLレビューのSELECT;の所に入力する UPDATE TABLE1 SET C=…;のような式) を教えてください。 (例) 変更後のTABLE1   A  B  C   1  0  a   1  9  a   1  2  a   2  1  c   2  3  c   2  0  c   2  7  c   3  1  b   3  0  b    :   :   :  999  0  a    :   :   :

  • AccessのUpdateについて

    質問をさせていただきたいのですが、 Accessで別のテーブルに有るカラムを合計した金額をもとに、 テーブルを更新するにはなにかよい案などございませんでしょうか。 具体的にもうしますと、 AテーブルとBテーブルがありまして、AテーブルのA1というカラムの値をsumし た値を BテーブルのB1というカラムに入れるアップデート文を作成したいのです。 AテーブルのA2とBテーブルB2というカラムは同じ値が一意で入っています。 インターネットで検索した、今回行おうとしている事に近い方法を 試しても上手くいきませんでした。 大変申し訳ございませんが、お知恵をお貸しいただけませんでしょうか。 以上です。 よろしくお願いいたします。

  • 文字列に対してPHP上で一括置き換えしたい

    DBにあるテーブルの指定されたカラム全てを文字列に対してPHP上で一括置き換えしたいです。 phpアドミン上でSQL文を使って UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列"); で実行したらうまくいくのですが、 これをPHP上で処理したいと考えてます。 require("godb.php");//DBにアクセス $sql ="UPDATE テーブル名 SET フィールド名 = REPLACE(フィールド名,"AAA","BBB")"; mysql_query($sql2); と実行してもうまくいきません。。。 これって、、、一個一個対象カラムをPHP上で取り出してから 処理をかけないといけないのでしょうか。。 アドバイスいただけたら幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • UPDATE文の副問い合わせ

    こんばんわ。 今少し書き方がわからないSQL文があって困っています。 テーブルA(データが入ってるテーブル)に 新規でカラムを追加したので、 今UPDATE文を使いたいと思っています。 膨大なので、1つ1つする訳にはいかないので、 条件指定して、あるカラムにあるとある条件に合致するものは 新規カラムの値が4とか ある条件なら、新規カラムの値が6などと入れたい感じです。 自分なりに調べて UPDATE テーブル名 SET 新規カラム = 値 WHERE (SELECT * FROM 同じテーブル名 WHERE 条件) だと思って色々書いたり試行錯誤したのですが、 全然できませn。 どのように書けばよろしいのでしょうか? またUPDATEをかける際の条件指定に2つの違った 条件(同じカラムの違う条件、または別カラムの条件) を入れることは可能でしょうか? 回答いただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • お世話になってます。

    お世話になってます。 SQL初心者です。 現在、ORACLEでSQLを作成しているのですが、「ORA-00920」と「ORA-02063」が 発生し困っています。 「ORA-02063」の原因は調べてみると「ORA-00920」が原因の可能性があるみたいです。 「ORA-00920」のメッセージには「関係演算子が無効です。」とありますが、 調べてみてもよくわかりません。 実行するSQLは以下のような感じです。 ■SQL文 with テーブルA as( SELECT文   取得カラムA, 取得カラムB, 取得カラムC ), テーブルB as(   取得カラムA, 取得カラムB, 取得カラムC ) SELECT * FROM テーブルA A_TABLE, テーブルB B_TABLE WHERE A_TABLE.取得カラムA = B_TABLE.取得カラムA (+) AND A_TABLE.取得カラムB = B_TABLE.取得カラムB (+) AND A_TABLE.取得カラムC = B_TABLE.取得カラムC (+) ***ココマデ*** ビューの作成はうまくいっているのですが、 テーブルAとテーブルBを使用したSQL文でエラーになっているようです。

  • 条件付きの複数の列の更新を1度にすることは可能?

    MySQLバージョン4.1.16を使っています。 aという列はaが0より大きいときだけ-1したくて でもbはいかなる条件のときでも0にしたい、という場合に それを1つのSQL文で実行することは可能なのでしょうか? 例えば、 query("UPDATE table SET a = a - '1' WHERE a > '0';"); query("UPDATE table SET b = '0';"); を1つのSQL文で実行したいのです。

    • ベストアンサー
    • MySQL
  • SQL文について

    Select文についての質問です。 テーブルA,B, Cがります。  Aテーブルのカラム A1,A2, A3  Bテーブルのカラム B1, B2, B3  Cテーブルのカラム C1,C2, C3 A1=B1,A2=B2の  A3,B3 と、 A1=C1でC3がNULLでないCテーブルの件数 を一度に取得したい場合、どのようなSQL文になるでしょうか。 よろしくお願いします。

  • updateで複数行更新したい

    OracleのSQLについて質問があります。 UPDATE文を1度しか使わずに、抽出条件の異なるデータを複数個更新することは可能ですが? 例えば、 テーブル名:TEST カラム: A B C D UPDATE A B C D 100 010 350 300 → 100 010 200 250 100 020 350 000 → 100 020 200 280 という感じで更新したいのですが、どんなUPDATE文を組み立てればいいのか思いつきません。 なので、何かきっかけになるようなことでも構いませんので、教えてください。 よろしくお願いします。

  • 複数の行を集約するSQLについて

    以下のテーブルのレコードをもとに A B C 1| あ | あ | 1 | 2| あ | い | 1 | 3| あ | う | 1 | 4| う | あ | 1 | 5| え | あ | 1 | 6| あ | あ | 2 | 7| あ | い | 2 | 8| あ | う | 2 | 9| う | あ | 2 | 以下のテーブルを作成したいと考えています。 A B C D E 1| あ | あ | 1 | あ | - | 2| あ | い | 1 | い | - | 3| あ | う | 1 | う | あ | 4| え | あ | 1 | - | え | 5| あ | あ | 2 | あ | - | 6| あ | い | 2 | い | - | 7| あ | う | 2 | う | あ | (1)カラムCを1つのグループとします。 (2)その中でカラムAの値が「あ」の場合は、カラムBの値をカラムDに設定する。 (3)カラムAの値が「あ」ではない場合は、カラムBの値をカラムEに設定する。 (4)カラムAの値とカラムBの値を入替えると同じ場合は(例では上の表の3と4、8と9のレコード)、 カラムAの値が「あ」でない方のレコード(4と9のレコード)のカラムBの値をカラムEに設定する。 (5)(4)で値を設定した方のレコードを削除する。 どのようなSQLを作成すればできるのでしょうか? SQLに詳しい方がいらっしゃれば、ご教授をお願います

専門家に質問してみよう