Mysql过程中的条件



我想在过程中添加一个条件,但不能使用(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)

最新更新