update_account_table_by_cost_elements#

Parameters#

Name

Type

acc_tabl_name

varchar(50)

cel_tabl_name

varchar(50)

SQL Definition#

CREATE PROCEDURE `update_account_table_by_cost_elements`(IN acc_tabl_name varchar(50), IN cel_tabl_name varchar(50))
BEGIN
    SET SQL_SAFE_UPDATES = 0;
    	SET @stmt = CONCAT('UPDATE ', acc_tabl_name, ',',
    						'(SELECT ', acc_tabl_name, '.code_of_account,
    								ce.total_cost as cost,
    								ce.updated as updated
    						FROM ', acc_tabl_name, '
    						JOIN (SELECT account,
    									sum(cost_2017) as total_cost,
    									sum(updated) as updated
    							FROM ', cel_tabl_name, '
    							GROUP BY ', cel_tabl_name, '.account ) as ce
    						on ', acc_tabl_name, '.code_of_account = ce.account
    						ORDER BY ', acc_tabl_name, '.ind) as updated_account
    						SET ', acc_tabl_name, '.total_cost = updated_account.cost,
    						review_status = \'Ready for Review\'
    						WHERE updated_account.updated > 0
    						and ', acc_tabl_name, '.code_of_account = updated_account.code_of_account;');
    	PREPARE stmt FROM @stmt;
    	EXECUTE stmt;
    	DEALLOCATE PREPARE stmt;
END;;