2012-04-27 8 views
1

私は次にエクスポートする私の一時テーブルに値を設定しているこのクエリを実行しています。 priceSingleは運賃を単純に2倍にして計算されます。しかし、一部の行では、カテゴリは単なる単価であるため、倍増したくありません。クエリは、実際にPHPで文字列に埋め込まれているが、SQLは次のようになります。別のフィールドが5または10と等しい場合は、フィールドを掛けないでください

INSERT INTO temp 
    SELECT cruises.code AS sailingId, live, 'USD', 'optioncode', 'rateOptionName', '2', 
      category AS cabinCategory, fare*2 AS priceSingle, fare AS priceDouble, 
      supplements_usa.adult AS priceAdditional 
     FROM fares_usa, supplements_usa, cruises 
    WHERE fares_usa.cruise_id = supplements_usa.cruise_id 
     AND cruises.id = fares_usa.cruise_id AND cruises.live = 'Y' 

私がやって回避することができますどのようにfare*2categoryが5または10等しいですか?

答えて

5
CASE WHEN category = 5 OR category = 10 THEN fare ELSE fare * 2 END 
+0

恐怖の代わりにちょうど落ちます* 2 AS priceSingle – Rich

+0

はい、 'CASE ... END'は' fare * 2'式を置き換える式です。 –

+0

うん、それはそれをやった、それは私にさせてくれますよ、ありがとう@ジョナサン・レフラー – Rich

関連する問題