Mysql 过程中的条件

Conditions in the Mysql Procedure

我想在程序中添加一个条件,但是我不能使用(IF(Wh=0,'AND 1=1','AND D.wh_parn = 102')) 这是我的程序:

CREATE DEFINER=`akarremote`@`%` PROCEDURE `laporan_top_brand_penjualan`(IN Wh INT, IN `Datemin` VARCHAR(191), IN `Datemax` VARCHAR(191))
BEGIN

    SELECT
        A.item_id,
        A.item_name AS ITEM,
        (
        SELECT
            SUM( C.jumlah ) AS jumlah
        FROM
            mob_penjualan B
            LEFT JOIN mob_penjualandetail C ON C.noTransaksi = B.noTransaksi
            LEFT JOIN krd_wh D ON D.wh_id = B.idWH 
        WHERE
            C.idItemProduk = A.item_id 
            AND B.TglTransaksi BETWEEN Datemin AND Datemax
            (IF(Wh=0,'AND 1=1','AND D.wh_parn = 102'))
        GROUP BY
            C.idItemProduk 
        ORDER BY
            jumlah DESC
        ) AS JML,
        (
        SELECT
            SUM( C.qty ) AS qty
        FROM
            mob_penjualan B
            LEFT JOIN mob_penjualandetail C ON C.noTransaksi = B.noTransaksi
            LEFT JOIN krd_wh D ON D.wh_id = B.idWH 
        WHERE
            C.idItemProduk = A.item_id 
            AND B.TglTransaksi BETWEEN Datemin AND Datemax
            (IF(Wh=0,'AND 1=1','AND D.wh_parn = 102'))
        GROUP BY
            C.idItemProduk 
        ORDER BY
            qty DESC
        ) AS QTY 
    FROM
        krd_item A
    ORDER BY
        JML DESC, QTY DESC;
    
END

有什么解决办法?

WHERE C.idItemProduk = A.item_id 
  AND B.TglTransaksi BETWEEN Datemin AND Datemax
  AND IF(Wh=0, 1, D.wh_parn = 102)