DELIMITER $$
CREATE PROCEDURE PRO_GET_PRICE_ORDER_BYDATE(IN C_DATE DATE)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a INT DEFAULT 0;
DECLARE mycursor CURSOR FOR SELECT DISTINCT order_id FROM xs_tb_price_order;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN mycursor;<br /> REPEAT <br /> FETCH mycursor INTO a;<br /> IF NOT done THEN<br /> <br /> <br /> <br /> UPDATE XS_TB_DATE SET CUR_DATE= C_DATE;
UPDATE XS_TB_ORDER_DETAIL SET ZHAI_AMT1= (1+DATEDIFF(C_DATE,
THIS_DATE)RATE/100)ZHAI_LEFT1/AMOUNT(AMOUNT- IFNULL(
(SELECT
IFNULL(SUM(BAL_MONEY),
0)
FROM
XS_TB_PRICE_ORDER op
WHERE
op.ORDER_ID=a AND
op.PI_DATE<=C_DATE
AND op.RATE_DATE>C_DATE ),
0) - IFNULL((SELECT
IFNULL(SUM(BAL_MONEY),
0)
FROM
XS_TB_PRICE_ORDER op
WHERE
op.ORDER_ID=a AND
op.PI_DATE>C_DATE
AND op.remark IS NULL ),
0) )
WHERE order_id=a;
<br /> END IF;<br /> UNTIL done END REPEAT;<br /> CLOSE mycursor;<br /> END$$
