*zodiacus*
08-01-2006, 20:08
Sto creando un DB di supporto alla gestione di un negozio elettronico. Saltando le "ciance" ( :D ) vi posto lo schema logico e vi riassumo il mio problema:
Abbiamo quindi tre tabelle che ci interessano: Emissione_Ordine(Codice_Prodotto,P.Iva,Quantità,Data_acquisto, Data_consegna), Magazzino (Codice_Prodotto, Quantità, Collocazione) e Ordine_Ricevuto (Codice_Prodotto,P.Iva/CF,Quantità,Importo, Data_ordine), che sarebbe l'ordine del cliente.
Ora dovrei creare una query che aggiorni le giacenze in magazzino in base agli ordini ricevuti ed emessi. Al momento ho impostato due query che lo aggiorna in base alla data, eccole:
UPDATE Magazzino INNER JOIN Emissione_ordine ON Magazzino.Prodotto=Emissione_ordine.Codice_prodotto
SET Magazzino.Quantità = Magazzino.Quantità+Emissione_ordine.Quantità
WHERE Emissione_ordine.Data_consegna Between Date() And Date()-1;
UPDATE Magazzino INNER JOIN Ordine_Ricevuto ON Magazzino.Prodotto=Ordine_Ricevuto.Prodotto
SET Magazzino.Quantità = Magazzino.Quantità-Ordine_Ricevuto.Prodotto
WHERE Ordine_Ricevuto.Data_Ordine Between Date() And Date()-1;
Il problema è che in questo modo potrei eseguire la query giornalmente e non avrei una conoscenza in tempo reale del DB.
Avevo pensato anche a una soluzione alternativa tipo aggiornarlo in base all'ultimo record inserito (in modo che ogni volta non conteggi tutti i record, ma solo gli ultimi inseriti). Peṛ non riesco ad impostarlo con una gestione del codice prodotto "dinamica".
Avete qualche idea per risolvere il dilemma?
Abbiamo quindi tre tabelle che ci interessano: Emissione_Ordine(Codice_Prodotto,P.Iva,Quantità,Data_acquisto, Data_consegna), Magazzino (Codice_Prodotto, Quantità, Collocazione) e Ordine_Ricevuto (Codice_Prodotto,P.Iva/CF,Quantità,Importo, Data_ordine), che sarebbe l'ordine del cliente.
Ora dovrei creare una query che aggiorni le giacenze in magazzino in base agli ordini ricevuti ed emessi. Al momento ho impostato due query che lo aggiorna in base alla data, eccole:
UPDATE Magazzino INNER JOIN Emissione_ordine ON Magazzino.Prodotto=Emissione_ordine.Codice_prodotto
SET Magazzino.Quantità = Magazzino.Quantità+Emissione_ordine.Quantità
WHERE Emissione_ordine.Data_consegna Between Date() And Date()-1;
UPDATE Magazzino INNER JOIN Ordine_Ricevuto ON Magazzino.Prodotto=Ordine_Ricevuto.Prodotto
SET Magazzino.Quantità = Magazzino.Quantità-Ordine_Ricevuto.Prodotto
WHERE Ordine_Ricevuto.Data_Ordine Between Date() And Date()-1;
Il problema è che in questo modo potrei eseguire la query giornalmente e non avrei una conoscenza in tempo reale del DB.
Avevo pensato anche a una soluzione alternativa tipo aggiornarlo in base all'ultimo record inserito (in modo che ogni volta non conteggi tutti i record, ma solo gli ultimi inseriti). Peṛ non riesco ad impostarlo con una gestione del codice prodotto "dinamica".
Avete qualche idea per risolvere il dilemma?