sql >> Database teknologi >  >> RDS >> Mysql

Indlejrede CASE-udsagn i MySQL

Du mangler en THEN i din første CASE Udmelding. (beklager, jeg var nødt til at tilføje tabelaliasser )

SELECT sc.session_id
    , sc.product_id
    , sc.product_qty
    , sc.product_option
    , p.product_title
    , p.product_price
    , p.product_sale_price_status
    , p.product_sale_price
    , po.option_text
    , po.option_upcharge
    , CASE
        WHEN (p.product_sale_price_status = 'Y')
        THEN <-- add this
            CASE
            WHEN (po.option_upcharge IS NOT NULL)
                THEN (sc.product_qty * (p.product_sale_price + po.option_upcharge)) 
                ELSE (sc.product_qty * p.product_sale_price)    
            END
        ELSE
            CASE
            WHEN (po.option_upchage IS NOT NULL)
                THEN (sc.product_qty * (p.product_price + po.option_upcharge))
                ELSE (sc.product_qty * p.product_price)
            END
        END AS product_total
FROM tblshopping_cart sc
INNER JOIN tblproducts p
    ON sc.product_id = p.product_id
LEFT JOIN tblproduct_options po
    ON sc.product_option = po.option_product_id
ORDER BY sc.product_qty ASC


  1. Opdatere en tabel ved hjælp af JOIN i SQL Server?

  2. Er der en grund til ikke at bruge <=> (null safe er lig med operator) i mysql i stedet for =?

  3. Rul A tilbage, hvis B går galt. fjederstøvle, jdbctemplate

  4. SQL Server Cursor Types - Dynamic Cursor | SQL Server Tutorial / TSQL Tutorial