如何比较两个表的总和并用mysql触发器更新另一个表

xkrw2x1b  于 2021-06-17  发布在  Mysql
关注(0)|答案(0)|浏览(135)

比较两个表的总和,并用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行”

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题