-- --------------------------------------------------------------- -- Calcul du solde basé sur la somme des écritures -- --------------------------------------------------------------- drop table if exists tmp_maj_solde_carte; create table tmp_maj_solde_carte as select carte_id,sum(valeur_ecriture) as solde_ecriture from ecriture group by carte_id; ALTER TABLE tmp_maj_solde_carte ADD INDEX idx_tmp_maj_solde_carte (carte_id ASC); -- --------------------------------------------------------------- -- Sauvegarde des soldes erronées avant mise à jour -- --------------------------------------------------------------- drop table if exists tmp_sav_ecart_solde ; create table tmp_sav_ecart_solde as select a.num_carte,a.intitule,a.cumul_consommation_offline,a.cumul_consommation_synchronise,a.solde_online, a.deleted,a.statut, a.ind_annulation,a.type_carte, b.solde_ecriture from carte a, tmp_maj_solde_carte b where a.id=b.carte_id and a.solde_online <> b.solde_ecriture; -- --------------------------------------------------------------- -- Mise à jour des soldes -- --------------------------------------------------------------- update carte a, tmp_maj_solde_carte b set a.solde_online = b.solde_ecriture where a.id=b.carte_id and a.solde_online <> b.solde_ecriture;