ロジックに基づいて価格を選択するコードがあります。私たちの選択肢は、ターゲットマージン、平均過去価格、市場価格です(これらはすべて計算されています)。時には、その論理を無視して、「このモデルでは、すでに選択したものではなく、この価格を使用してください」と明示的に言いたいことがあります。しかし、私はまた、私が使った価格を保持しています。これで私の価格は問題なく設定されます。SQL Update 2 1つのケースの列
Update A
Set [Price] = Case
When [Logic Override] = 1 THEN [Target Margin Price]
When [Logic Override] = 2 THEN [Average Historical Price]
When [Logic Override] = 3 THEN [Market Price]
Else [Price]
END
From PriceTable A
Where ([Logic Override] <> 4 and [Logic Override] is not null)
and [Model_ID] = Coalesce(NullIf(@ModelID, ''), [Model_ID])
[価格設定方法]を設定することもできます。ロジックオーバーライドが1の場合、本当にやりたいことが価格と価格設定方法の両方を、例えば$ 20と 'Target Margin'に設定すると、全く新しいケースステートメントを作成する必要がありますか?私はこれを行うための正しい構文を得ることができないようです。
お返事ありがとうございます。それはおそらく最善の考えです。私はちょうどそれがすべて一緒だったら維持することがより容易であると思った。私は長年のAccess開発者であり、 "Select Case"ステートメントで非常に簡単に実行でき、SQLのようなものを期待していました。私は価格設定方法の2番目の部分を完全に忘れていたので、私は尋ねました(私はある時点でそこにあったと確信していますが、テストの途中でどこかで削除されているはずです)。 –