Archivio di riordino.

di il
9 risposte

Archivio di riordino.

Salve, sono un giovane programmatore.
Sto sviluppando un archivio access per la mia azienda che si occupa di distribuzione del caffè (capsule).
Nell'archivio sono presenti 3 entità: Clienti, Vendite e Consulenti.
Nella tabella consulenti troviamo l'anagrafica di quest'ultimi, nell'entità Clienti troviamo l'anagrafica del cliente,il consumo medio giornaliero di caffè e la chiave del consulente incaricato a seguire il suddetto cliente, nella tabella vendita vengono memorizzati i dati relativi alla vendita con la chiave di referenza al cliente che ha effettuato l'acquisto e al consulente incaricato alla vendita.
Una funzione fondamentale di questo Database è quella di elencare quali clienti (in base al loro consumo medio) potrebbero aver finito il caffè nella data odierna.
Ho già effettuato delle prove, ma i risultati sono stati tutt'altro che positivi, mi trovo dunque qui a chiedere aiuto nella speranza che qualcuno con più abilità di me possa darmi una mano.
Se non dovessi essere stato chiaro non esitate a chiedere ulteriori informazioni.
Grazie in anticipo!

9 Risposte

  • Re: Archivio di riordino.

    Se hai già il consumo medio è semplice:
    Conti i giorni passati dall'ultimo ordine e li moltiplichi per il consumo medio, poi il risultato ottenuto lo confronti con la quantità dell'ordine e ottieni la differenza. Se il primo supera il secondo, il cliente ha presumibilmente finito il caffé.
  • Re: Archivio di riordino.

    Come dovrei fare per far considerare all'archivio soltanto l'ultimo ordine?
    Attualmente il mio archivio effettua il controllo su tutti gli acquisti effettuati dal cliente ansi che considerare soltanto l'ultimo, è questo il mio più grande problema.
  • Re: Archivio di riordino.

    Immagino tu abbia un campo Data. Su questo campo puoi calcolare il valore Max, oppure se ordini i record Crescente in base a Data, puoi considerare Last. Devi fare uso di una query ovviamente.
  • Re: Archivio di riordino.

    OsvaldoLaviosa ha scritto:


    Immagino tu abbia un campo Data. Su questo campo puoi calcolare il valore Max, oppure se ordini i record Crescente in base a Data, puoi considerare Last.
    Ho già provato ma in questo caso mi fornisce solo il cliente che ha effettuato l'ultimo acquisto; a me servirebbe l'acquisto più recente per ogni cliente all'interno del database.
  • Re: Archivio di riordino.

    Quando calcoli il Max, nella query non devi inserire il solo campo Data, ma anche IDCliente. Quando vai a cliccare in alto alla visualizzazione struttura query su Totali, al campo Data imposti Max, mentre su IDCliente lasci Raggruppamento.
  • Re: Archivio di riordino.

    Vi ringrazio, ciò che mi avete consigliato funziona perfettamente, ho solo un ultima domanda:
    Stando ai dati ricavati fin'ora ho calcolato mediante una query di aggiornamento la durata media (in giorni) di una fornitura di caffè per ogni cliente.
    L'ultimo passo sarebbe calcolare in quale data i clienti potrebbero avere bisogno di una nuova fornitura: a tale fine sto cercando di creare un'altra query di aggiornamento che aggiunga alla data dell'ultimo acquisto i giorni di durata media di una scorta, che andrà poi paragonata alla data di sistema per capire se i clienti hanno bisogno di un riordino oppure no, ma nessuna delle formule da me elaborate sembra funzionare, qualcuno di voi saprebbe come aiutarmi?
    Grazie in anticipo.
  • Re: Archivio di riordino.

    Devi usare la funzione DateAdd().
    Vedi la guida per tutti i dettagli.
  • Re: Archivio di riordino.

    gibra ha scritto:


    Devi usare la funzione DateAdd().
    Vedi la guida per tutti i dettagli.
    Ti ringrazio per il suggerimento.
    Dopo aver letto la guida ho effettuato un paio di prove per vedere come utilizzare la funzione DateAdd e penso di aver capito, ma quando lo applico al mio caso specifico qualcosa non va perché mi da l'errore "numero errato di argomenti specificati in una funzione nell'espressione immessa."
    Io ho preso il campo "DATA PREVISTA DI RIORDINO" e con una query di aggiornamento sto provando ad aggiornare a: DateAdd(durata master, 1, MaxDiData)
    Dove: durata master contiene un valore numerico con i giorni previsti di durata del master.
    MaxDiData è un valore derivato da una query che contiene la data dell'ultimo acquisto effettuato da un cliente.
    Mi scuso davvero per la mia ignoranza, magari sto commettendo degli errori banali, ma sono davvero poco pratico di access.
    Ancora grazie.
  • Re: Archivio di riordino.

    Evidentemente non hai compreso l'uso di DateAdd.

    leggi bene riguardo al primo parametro :
    https://support.office.com/it-it/article/Funzione-DateAdd-63befdf6-1ffa-4357-9424-61e8c57afc19

    p. s. durata master non c'entra nulla.
Devi accedere o registrarti per scrivere nel forum
9 risposte