View Single Post
Old 28-01-2004, 00:17   #12
cisky
Member
 
L'Avatar di cisky
 
Iscritto dal: Aug 2001
Città: Gerenzano
Messaggi: 129
PREMESSA:
Anche se probabilmente questa risposta sarà incomprensibile a molti utenti perchè solo io ho avuto la possibilità di
visionare il DB tramite messaggio privato, ho deciso di postare ugualmente nel caso in cui a qualcuno possa risultare
di aiuto (Non si sa mai)
----------------------------------------

RISPOSTA:
Se il tuo problema consiste nella creazione di una query che visualizzi la situazione aggiornata dei dati Impegnati - Scarico non c'è problema,
ti illustro come puoi fare.Se invece vuoi aggiornare direttamente i dati della tabella Impegnati allora la cosa è più complessa.
Dico che la cosa è più complessa perchè attualmente nella tabella Impegnati possono essere presenti più record per lo stesso
codice prodotto (con valori di Qt diversi) e quindi dovresti creare una procedura che vada ad eliminare i record in questa tabella (In modo che il totale delle Qt dei record rimanenti coincida con la differenza tra Impeganto e Scarico) e
credo proprio (Praticamente certo) che questa cosa non si possa fare direttamente in access(Ma devi farla via Codice VB) perchè il DB "a mio avviso" non è strato progettato in maniera "ottimale".

* Comunque se il tuo problema è creare una query, queste sono le operazioni da fare:

1) Siccome i record della tabella scarico possono essere molteplici per ogni codice prodotto, la prima cosa da fare è creare una query
che conteggi la somma dei record per codice articolo(In questo modo ottieni la quantità da scaricare).Chiamerò questa query 'qry_totScarico'

[qryTotScarico]
SELECT cod_articolo, COUNT(cod_articolo) AS QtScarico
FROM scarico
GROUP BY cod_articolo

2) Una volta che hai creato la query che visualizza i totali scaricati (x articolo), semplicemente crei una nuova query (che chiamerò 'qryQtAggiornate') utilizzando
la query 'qryTotScarico' e la query IMPEGNATI'.La query che "comanda" è quella degli impegnati, che sarà collegata con un LEFT JOIN a quella dello Scarico.
Con una semplice sottrazione calcoli quindi la QT impegnata dopo lo scarico.

[qryQtAggiornate]
SELECT Impegnati.cod_articolo, Impegnati.Quantità AS Qtimpegnato, qry_TotScarico.QtScarico, (Impegnati.Quantità-nz(qry_TotScarico.QtScarico,0)) AS QtAggiornata
FROM Impegnati LEFT JOIN qry_TotScarico ON Impegnati.cod_articolo = qry_TotScarico.cod_articolo;

* Se il tuo problema invece è aggiornare direttamente la tabella impegnato, fammi sapere, che proverò a darti una mano.

Ciao!
__________________
E' quasi tutto relativo!

Ultima modifica di cisky : 28-01-2004 alle 00:22.
cisky è offline   Rispondi citando il messaggio o parte di esso