MySQLで重量に対する送料をテーブルからSELECTするクエリーを考えているのですが、なかなか思いつかないのでアドバイスを頂けたらと思い質問させて頂きました。
まず重量に対する送料のテーブルtb_souryouを作ります。
sql
1tb_souryou 2No, weight, souryou 31, 100, 200 42, 200, 240 53, 300, 280 64, 400, 320 75, 500, 360 86, 750, 440 97, 1000, 620 108, 1500, 940 119, 2000, 1260
tb_souryouのweightはg(グラム)、souryouは円を表しています。
荷物の重量は様々ですが、例えば
・荷物が50gだとしたらtb_souryouからweight
= 100のsouryou
つまり200円が送料となります。
・荷物が365gだとしたらtb_souryouからweight
= 400のsouryou
つまり320円が送料となります。
・荷物が1200gだとしたらtb_souryouからweight
= 1500のsouryou
つまり940円が送料となります。
条件は、
・荷物が1~100gならweight
=100のsouryou
を取得します。
・荷物が101~200gならweight
=200のsouryou
を取得します。
・…
・荷物が1501~2000gならweight
=2000のsouryou
を取得します。
・荷物が2001g以上の場合は結果を返しません(tb_souryouに記録されているweight
は2000までなので)。
このように荷物の重量が様々な条件の場合のSELECT souryou FROM tb_souryouはどのようなクエリー文になるのでしょうか?
tb_souryouのweightの値が変更されたとしてもクエリー文を変更しなくても良いようなクエリー文をお願い致します(CASE WHEN weight
> 1500 AND weight
<= 2000 THEN 1260 みたいに決め打ちのクエリー文ではなく…という意味です)。
どうぞよろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/10/27 02:35