人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Microsoft Access2002を使っています。
以下3つのSQL文があります。

UPDATE ファイル名 SET ファイル名.項目名1 = “A"
WHERE (((ファイル名.項目名2) Between "001" And "016"));

UPDATE ファイル名 SET ファイル名.項目名1 = "B"
WHERE (((ファイル名.項目名2) Between "069" And "072"));

UPDATE ファイル名 SET ファイル名.項目名1 = "C"
WHERE (((ファイル名.項目名2>="073"));

3つともレコードの更新ですが、それぞれ1つずつ実行しています。
3つ一度に実行させるには、どのようにSQL文を修正すればよいでしょうか。


●質問者: yoshifuku
●カテゴリ:コンピュータ
✍キーワード:Microsoft SET SQL ファイル レコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● F-15X
●35ポイント

私としてはあまりお勧めしませんが、あえてやるなら次のようなSQLでしょうか。


UPDATE ファイル名 SET 

項目名1 = 

IIf(項目名2>="001" And 項目名2<="016", "A", 

    IIf(項目名2>="069" And 項目名2<="072", "B", 

        IIf(項目名2>="073" , "C", 項目名1)

    )

)

WHERE

    (項目名2 Between "001" And "016")

OR  (項目名2 Between "069" And "072")

OR  (項目名2 >= "073")

◎質問者からの返答

ありがとうございます。

もし他もによい記述がありましたら、お待ちいたします。


2 ● りくっち
●35ポイント
UPDATE table_A SET table_A.Field_1 = 
IIf(Val([Field_2])<=16,"A",
IIf((Val([Field_2])>=69)*(Val([Field_2])<=72),"B",
IIf(Val([Field_2])>=73,"C","")));

フィールド2に対して条件抽出するのでなく、

直接フィールド1に対してIIF文で書き込み処理を分岐してあげるのはどうでしょうか。

↑の文は

ファイル名=table_A

項目名1.2=Field_1.2

としてあります。


以上ご参考まで。

◎質問者からの返答

ありがとう!

ちょっとやってみますね!

勉強になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ