0

ユーザー入力テキスト (以下) を受け取り、機能する更新を実行する更新を作成する必要があります (これを行う必要があります)。ある種のループまたはカーソルを使用する必要があると思います。参照列に「FUEL=?」以外のテキストが含まれている可能性があります。ユーザーは、フォーマットが 'FUEL=?' でなければならないことを知っています。このアップデートが機能するために。現時点では、テーブルに列を追加できません。私はこれが初めてです..すべての助けに感謝します!!

ユーザー入力は次のようになります。

燃料グループ = A、C

新規追加料金 = 2

これを行う必要があります

update tblroutes
set DriverSurcharge = 2
where Reference like '%FUEL=A%' or  Reference like '%FUEL=C%'

開始するテーブル

ルート ID | リファレンス | 追加料金

F01 | Windows 燃料 = A | 0

F02 | 燃料=A | 0

F03 | 燃料=B | 0

F04 | 勝利 8 FUEL=B | 0

F05 | 燃料=C | 0

F06 | 燃料=C MAC | 0

F07 | 燃料=D | 0

最終結果が欲しい

ルート ID | リファレンス | 追加料金

F01 | Windows 燃料 = A | 2

F02 | 燃料=A | 2

F03 | 燃料=B | 0

F04 | 勝利 8 FUEL=B | 0

F05 | 燃料=C | 2

F06 | 燃料=C MAC | 2

F07 | 燃料=D | 0

一度に 1 つの「燃料グループ」を更新できますが、ユーザーが一度に必要な数のグループに対して更新を実行できるようにしたいと考えています。

DECLARE @Surcharge INT
DECLARE @Group Varchar

--This will give the user a input box for surcharge amount
--SET @Surcharge= '<< Please enter surcharge amount. >>'
----This will give the user a input box for fuel group(s)
--SET @Group= '<< Please enter fuel group(s). >>'

--If the user entered 4 & A
SET @Surcharge= '4'
SET @Group= 'A'

update tblroutes
set DriverSurcharge = @Surcharge
where Reference like '%FUEL='+@Group+'%'

ユーザーがFuel Group = A、Cに入った場合、どのように処理しますか

4

1 に答える 1

0

私の理解が正しければ、主な問題は SQL でのユーザー入力の解析です。そして、解析は実際には文字列を分割することを意味します。一時テーブルまたはテーブル変数に個別の値があるとすぐに、(作成済みの) クエリをループで実行できます。

この質問と回答を見てください:アイテム x にアクセスできるように文字列を分割するにはどうすればよいですか?

于 2013-01-05T21:01:48.897 に答える