簡體   English   中英

如何使用聯接在mysql中使用case語句?

[英]How to use case statements in mysql using joins?

我正在從事產品和類別以及產品折扣的工作。 我已經做了產品折扣。 但是問題出在計算category_discount。 這是我的代碼:

SELECT products.id, products.product_name, products.product_price, products.product_discount, categories.category_discount,
(CASE WHEN products.product_discount = 0  THEN products.product_price
      WHEN products.product_discount != 0 THEN products.product_price - ( products.product_price *  products.product_discount)/100
      WHEN categories.category_discount !=0 THEN products.product_price - ( products.product_price *  categories.category_discount)/100
   END) AS amount
 FROM products
 join 
categories
on products.category_id = categories.id

請參閱下面的結果,它沒有為第一行計算category_discount:- 在此處輸入圖片說明

然后按順序評估“當”語句,直到滿足。 在第一行中,第一個“從句”得到滿足,因此沒有折扣。 請嘗試以下方法:

 WHEN products.product_discount = 0  AND categories.category_discount = 0   THEN products.product_price

甚至像這樣重新排序:

 SELECT products.id, products.product_name, products.product_price, products.product_discount, categories.category_discount,
 (CASE WHEN products.product_discount != 0 THEN products.product_price - ( products.product_price *  products.product_discount)/100
  WHEN categories.category_discount !=0 THEN products.product_price - ( products.product_price *  categories.category_discount)/100
    ELSE products.product_price
 END) AS amount
 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM