[Base] Résultat de calcul dans une table

Bonjour,
J’ai créé une requête qui permet entre autres de calculer un prix avec la formule “Prix de vente” * “Quantité” as “Total ligne”.
Je voudrais que le résultat de calcul soit stocké dans la table et non calculé uniquement au niveau de la requête mais je ne sais pas comment faire.

Si tu veux qu’une colonne calculée dans une requête soit ensuite stockée dans une table, il faut concevoir une requête qui exporte les lignes dans la dite table. Mais je ne vois pas vraiment l’intérêt d’avoir une colonne calculée dans une table, sauf si il s’agit d’archiver des données.

Pour stocker les résultats des calculs, voici comment faire.

Supposons une table (très simplifiée pour l’exemple) nommée T_FACTURES :

CREATE TABLE T_FACTURES (
	FAC_ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL,
	FAC_ARTICLE VARCHAR(32) NOT NULL,	
	FAC_PU DECIMAL (14,2) NOT NULL,
	FAC_QTE INTEGER NOT NULL
);

La requête qui calcule le montant (nommée R_FACTURES) :

SELECT FAC_ID, FAC_ARTICLE, FAC_PU, FAC_QTE, FAC_PU * FAC_QTE AS FAC_TOTAL FROM T_FACTURES

Arrivé là, tu crées une vue à partir de la requête (bouton droit, “Créer en tant que vue”) que tu nommes V_FACTURES.

Ensuite, création d’une table d’archivage :

CREATE TABLE T_ARCHIVE (
	ARC_ID INTEGER NOT NULL,
	ARC_ARTICLE VARCHAR(32) NOT NULL,
	ARC_PU DECIMAL (14,2) NOT NULL,
	ARC_QTE INTEGER NOT NULL,
	ARC_TOTAL DECIMAL (14,2) NOT NULL
);

Et enfin, tu ouvres l’éditeur SQL et tu exécutes cette requête :

INSERT INTO T_ARCHIVE (ARC_ID, ARC_ARTICLE, ARC_PU, ARC_QTE, ARC_TOTAL) SELECT FAC_ID, FAC_ARTICLE, FAC_PU, FAC_QTE, FAC_TOTAL FROM V_FACTURES;

La table est remplie…