2016-11-04 12 views
0

item_class = HWが正しく取得できないパーツテーブルを更新しようとしています。誰でも私の構文が間違っているのを見ることができます。更新ステートメントとwhere句を使用してデータベース内のパーツテーブルを更新しようとしています

エラーは発生しませんが、正しい行は更新されません。実際には4行を更新する必要があるときに0行を更新すると言います。

+2

あなたはyuor HWの周囲に2つのスペースがあります。これは正しいですか? – scaisEdge

+0

いいえ、本当にありがとうございます。 – Clay

+1

あなたの質問のタイトルを意味のあるものにしてください。あなたは全く役に立たないタグを繰り返し、それらを削除する*(更新ステートメント)*は役に立たない。あなたのタイトルはあなたが尋ねている問題、またはあなたがここにいる将来のユーザーが検索結果でそれを見る人にとって意味のある方法で問題を説明するべきです。 –

答えて

0

あなたは間違ってスペースを持ってもらえ、言い難いが、私はいくつかの可能性のある問題を参照してください、あなたのデータを知らなくても

update part 
set unit_price = unit_price + 1.05 
where item_class like '*HW*' ; 

または

update part 
set unit_price = unit_price + 1.05 
where item_class like '* HW *' ; 

または

update part 
set unit_price = unit_price + 1.05 
where item_class = 'HW' ; 
+0

はい私はスペースを削除し、それは魅力のように働いた。あまりにも多くの私はそれらのスペースを入れて、それを実現しないために愚かな気がしてありがとうございます。 – Clay

+0

私は最後のものを使用しました。 – Clay

+0

私の答えが正しければそれを受け入れられたものとしてマークしてください...どう見てください http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

1

を使用してみてください。一つは 'HW'の周りのスペースです。そのフィールドにあるものによっては、正しいwhere句が何であるかを確かめるのは難しいです。 HWが文字の長いグループの一部である場合(人々は間違ってカンマで区切られたリストをAccessフィールドに格納することがあります)、代わりにLIKE関数を使用する必要があります。または、不要なスペースを削除すると問題が解決する可能性があります。したがって、selectステートメントから始めてください:

Select * from part where item_class = ' HW ' ; 
Select * from part where item_class = 'HW' ; 
Select * from part where item_class like '*HW' ; 
Select * from part where item_class like 'HW*' ; 
Select * from part where item_class like '*HW*' ; 

希望のレコードを返すものを見つけたら、更新ステートメントでそのステートメントを使用してください。私はそれが問題を引き起こす可能性があります参照他

何かがある:

set unit_price = unit_price + 1.05 

単価がNULL可能ならば、あなたは合計が動作するには0の値にそれを変換する必要があります。それ以外の場合は、NULLに任意の金額= NULLを加えます。次のように動作する可能性があります。

set (IIf([unit_price] Is Null, 0, [unit_price]))+1.05 
+0

はい、2番目のものが動作します。それらの意図しない空間でした。ありがとうございました – Clay

関連する問題