0

私はこのようなテーブルを持っています:

Quote     Super      Factor
29        63                   [83.79]
38        61                   [81.13]
79        65                   [86.45]

47        40                   [80]
81        25                   [50]
82        35                   [70]

列「Super」を取得し、「Quote」が29、38、79の場合は1.33を掛けますフィールド「Quote」が47、81、82の場合は、「Super」に2を掛けます。

引用は「BigInt(10)」であり、「Super」と「Factor」の両方のタイプは「Double」です。テーブルの名前は「Quote_IDX」です。

注:「[]」の数値は、この計算が完了した後の最終的な数値です。おそらくお分かりのように、私はMySQLにかなり慣れていないので、助けが必要です。

前もって感謝します。

4

1 に答える 1

2

CASEステートメントを使用する次のものを使用できます。データのSELECT結果が表示されます。

select quote, super, 
  case when quote in (29, 38, 79)
        then super * 1.33
      when quote  in (47, 81, 82)
        then super * 2.0
      else 0
  end factor
from Quote_IDX

デモ付きのSQLフィドルを参照してください。次にUPDATEfactor列のを実行する場合:

update Quote_IDX
set factor = (case when quote in (29, 38, 79)
                then super * 1.33
              when quote  in (47, 81, 82)
                then super * 2.0
              else 0 end)

SQL FiddlewithDemoを参照してください

于 2012-10-02T20:40:15.813 に答える