SQLステートメントでCASELogicを初めて使用しました。CASEステートメントを削除するとすべてが機能するため、CASEステートメントがなくてもSQLは有効です。
いくつかのことに基づいて、アイテムの合計価格を計算する必要があります。
「販売価格」がアクティブで、「オプション追加料金」に値がある場合、合計は次のようになります。数量*(販売価格+オプション追加料金)
「販売価格が非アクティブで、「オプションの追加料金」に値がある場合、合計は次のようになります。数量*(価格+オプションの追加料金)
「販売価格」がアクティブで、「オプション追加料金」に値がない場合、合計は次のようになります。数量*販売価格
「販売価格が非アクティブで、「オプションの追加料金」に値がない場合、合計は次のようになります。数量*価格
オプションが追加されていない場合、tblproduct_options.option_upchargeの値は出力でNULLになります。
助けてくれてありがとう。
ブレット
これが私のSQLです:
SELECT tblshopping_cart.session_id, tblshopping_cart.product_id, tblshopping_cart.product_qty, tblshopping_cart.product_option, tblproducts.product_title, tblproducts.product_price, tblproducts.product_sale_price_status, tblproducts.product_sale_price, tblproduct_options.option_text, tblproduct_options.option_upcharge,
CASE
WHEN (tblproducts.product_sale_price_status = 'Y')
CASE
WHEN (tblproduct_options.option_upcharge IS NOT NULL)
THEN (tblshopping_cart.product_qty * (tblproducts.product_sale_price + tblproduct_options.option_upcharge))
ELSE (tblshopping_cart.product_qty * tblproducts.product_sale_price)
END
ELSE
CASE
WHEN (tblproduct_options.option_upchage IS NOT NULL)
THEN (tblshopping_cart.product_qty * (tblproducts.product_price + tblproduct_options.option_upcharge))
ELSE (tblshopping_cart.product_qty * tblproducts.product_price)
END
END AS product_total
FROM tblshopping_cart
INNER JOIN tblproducts ON tblshopping_cart.product_id = tblproducts.product_id
LEFT JOIN tblproduct_options ON tblshopping_cart.product_option = tblproduct_options.option_product_id
ORDER BY tblshopping_cart.product_qty ASC
メッセージで失敗します:
CASE
WHEN (tblproduct_options.option_upcharge IS NOT NULL)
THEN (tblshopping_' at line 4