比较两个表的总和,并用mysql触发器更新另一个表
DELIMITER $$
CREATE TRIGGER change_com_status_on_sales_table AFTER INSERT ON `commision_calculation` // COMMISSION TABLE
FOR EACH ROW
BEGIN
DECLARE totalQnt1, totalQnt2 DOUBLE;
DECLARE sales_id INT;
SET @sales_id=(SELECT sales_info_id
FROM commercial_invoice WHERE ci_no = NEW.ci_no);
SET @totalQnt1=(SELECT sum(cc.quantity) as total_qnt1
FROM commision_calculation cc
LEFT JOIN commercial_invoice ci ON cc.ci_id = ci.id
WHERE cc.comission_type = 'Remex' AND ci.sales_info_id= @sales_id
GROUP BY @sales_id);
SET @totalQnt2=(SELECT SUM(sii.quantity) as total_income
FROM sales_info_item sii WHERE sii.sales_info_id = @sales_id
GROUP BY @sales_id);
IF (@totalQnt2 > @totalQnt1) THEN
UPDATE sales_information
SET ci_status = 'Partial'
WHERE id = @sales_id;
END IF;
IF (@totalQnt2 = @totalQnt1) THEN
UPDATE sales_information
SET ci_status = 'Full'
WHERE id = @sales_id;
END IF;
END; $$
DELIMITER ;
上面提到的错误
我得到“sqlstate[21000]:基数冲突:1242子查询返回超过1行”
暂无答案!
目前还没有任何答案,快来回答吧!