devi usare lo stesso principio.
se ho capito beme nella tabella "ARTIC" hai anche il campo GiIn ( Numerico )
dove registri la giacenza iniziale di ogni articolo.
Mentre il campo "GiacenzaIstantanea" NON lo devi mettere nella tabella
perche viene calcolato dalla query
____________________________________________
Per amor della chiarezza
----- tabella PERSO
idP (contatore, KeyPrimaria)
Nome (testo)
DaIn (DataOra) La data di iscrizione/Inizio della Persona
----- tabella ARTIC
idA (contatore, KeyPrimaria)
Arti (testo)
Prez (valuta)
GiIn (Numerico) <--- Aggiunto
------ tabella MOVIM
idM (contatore, KeyPrimaria)
Quan (numerico)
Casu (NotNull, Valori ammessi solamente "a" oppure "v" ( accuisto / Vendita))
idAM (numerico, chiave esterna della tabella ARTICOLI.idA)
idPM (numerico, chiave esterna della tabella PERSONE.idm)
codice:
SELECT
ARTIC.idA,
ARTIC.Arti,
ARTIC.GiIn,
Sum(IIf([MOVIM]![Casu]="v",[MOVIM]![Quan],0)+IIf([MOVIM]![Casu]="a",[MOVIM]![Quan]*-1,0)) AS SomMov,
Nz([GiIn],0)+[SomMov] AS GiIstan
FROM
ARTIC
LEFT JOIN
MOVIM
ON
ARTIC.idA = MOVIM.idAM
GROUP BY
ARTIC.idA,
ARTIC.Arti,
ARTIC.GiIn
;
Una domanda difficile:
Cosa succede se cambi il prezzo di un articolo ?????
Prova a verificare i saldi delle PERSONE prima e dopo il cambio del prezzo
.