Newsgroup: it.comp.appl.access
Titolo: Query di somma e sottrazione per disponibilità a magazzino

Chiedo cortesemente consiglio al NG su un problema di gestione movimenti a
magazzino
ho 2 tabelle:
- una che contiene gli articoli e i codici movimenti fatti (es. SP scarico
da produzione, AI apertura inventario),
- un'altra che contiene l'elenco di tutti i movimenti disponibili e la
stringa dell'operazione da compiere. (PIU o MENO)
i movimenti possono essere di carico o scarico a magazzino.
Come faccio a creare una o più query basandomi sulla prima tabella, che
sommino i positivi e sottraggono i negativi? Il problema è che ho bisogno di
un'istruzione tipo IF che mi sommi se trova PIU nella tabellina collegata
con l'elenco delle operazioni possibili e sottragga viceversa.
Il tutto deve andare ad aggiornare l'attributo "disponibilità" di una terza
tabella che contiene tutti gli articoli a magazzino.
Ringrazio chiunque voglia rispondermi. Holla
In alternativa qualcuno conosce un modo migliore per tale gestione?
Grazie Ancora.
Mariella.


fermo restando che la tua strada è avventurosamente percorribile, ti posso
dier come gestirei il tutto in maniera molto schematica
Tab_articoli: cod_art. descrizione
Tab_acquisti: ricerca_cod_art, qta_carico
Tab_vendite: ric_cod_art, qta_scarico
Relazioni Uno cod_art------molti Ricerca_cod_art
          Uno cod_art------molti ric_cod_art
 
Nelle query
Giacenza: Cod_art, nz(ricerca_cod_art) - nz(ric_cod_art)
Questa la struttura, semplice e lineare. Il resto è tutto in più
Se vuoi inizia così e poi la seguiamo per strada.
Ciao MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

"Colink" <col...@TOGLIQUESTOlibero.it> ha scritto nel messaggio
news:Xy2Ga.131513$g92.3...@news2.tin.it...

Io abitualmente faccio così:
ho una tabella di causali (che corrisponde + o - con il tuo elenco dei
movimenti disponibili); nella tabella ho due campi: uno trattamento_soggetto
e uno trattamento_magazzino (questo perchè un documento sposta merce da una
parte all'altra abitualmente... quindi il movimento è doppio!).
I campi possono contenere i numeri 0, 1 o -1.
Ogni riga di movimento, tramite la testata del documento, si relaziona alla
tabella e la moltiplicazione del segno della tabella causali per lla
quantità di riga mi restituisce l'entità del movimento del quale devo poi
fare solo la somma algebrica.
Non so se mi sono spiegato.
Due query, poi, una per l'intestatario del documento e una per il soggetto
trattato, mi fanno le opportune somme per articolo.
A dire la verità i due segni (e altre cosette) le replico nella riga del
movimento...
Bye.

 > da produzione, AI apertura inventario),
...
L'indicazione che mi hai dato è corretta, e hai confermato la mia idea
iniziale; il problema ora sussite nel fatto che della tabella contenete i
movimenti a magazzino devo fare un sunto con una query che mi RAGGRUPPI
tutti i codici articolo e mi sommi le quantità. ma come ben potrai pensare
tale query non è aggiornabile e non mi esegue alcuna query di aggiornamento
alla tabella esistenze proprio per questo motivo.
Grazie MA
Nicola

"Colink" <col...@TOGLIQUESTOlibero.it> ha scritto nel messaggio
news:3n3Ga.131901$g92.3...@news2.tin.it...

Puoi sempre fare una query di creazione di una tabella temporanea, poi una
query di aggiornamento...

 ha scritto nel
messaggio news:av3Ga.83835$Ny5.2...@twister2.libero.it...

Grazie ragazzi... siete veramente preziosi, funziona ma non completamente:
Come gestisco il fatto che alcuni articoli che sono nella tabella carichi
non ci sono nella tabella scarichi? se faccio una query di aggiornamento
funziona solo per quegli articoli presenti in entrambe le tabelle, e per gli
altri articoli mi aggiorna a valore null ! azz ho la testa dura...
Ultima cosa.. quando eseguo la query di creazione tabella mi compare il
solito messaggio di conferma eliminazione tabella esistente, l'unico modo
che conosco per ovviare a ciò è eseguire un comando di eliminazione da
macro... ne conoscete altri?
Grazie per tutto e buona serata a todos.

"Colink" <col...@TOGLIQUESTOlibero.it> ha scritto nel messaggio
news:LT3Ga.132180$g92.3...@news2.tin.it...

fai poi una query di aggiornamento sulla tabella degli articoli che metta 0
dove c'è NULL.
Tipo Update <tabella> set <campo>=0 where <campo> is null.
Imposta i messaggi a false, da codice si fa con DoCmd.SetWarnings false; poi
li metti a true dopo la procedura.
Bye.

 ha scritto:

Ciao George, ma questo NG è una droga per te. Anche a casa e in altri post
ho visto fino a quale ora!!! Ma una vita sociale non ce l'hai?? O sei
colpito dalla sindrome di Biso, che di questi tempi con l'emiro in giro, non
è sicuramante invidiabile!!
Venendo al problema. Così facendo tu confluisci nella stessa tabella i
movimenti di carico e di scarico, più le movimentazioni di magazzino. Non
pesa troppo la tabella??
ciao MAssimiliano


 ha scritto nel messaggio
news:62Z94Z199Z30Y1...@usenet.libero.it...

Gli informatici non hanno una vita sociale... ci ho già rimesso un
matrimonio per questo :o(((
Hai presente l'informatico programmatore di Jurassik park?
Scherzo... non sono così grasso!!!!
Ogni tanto mi tocca fare delle cose in telelavoro e mentre aspetto scrivo,
anche di notte.
Cmq... a questo indirizzo trovi la mia vita sociale e altre cosette:
http://217.57.196.227/
Magari ti va di curiosare
Tornando alla tabella:
La mia tabella del dettaglio movimenti su SQL Server ha 5.800.000 righe
(movimenti dal 1/10/2000).
Più o meno i movimenti sono il doppio quindi, secondo la regola: un
documento toglie da
lì e mette là...
Non ho problemi prestazionali e il server risponde con prontezza a qualsiasi
query... anche grazie agli indici.
Alla faccia di chi dice che SQL Server non è il massimo delle prestazioni.
E' evidente che non uso il Jet per queste cose.
Bye.

 ha
scritto:

Ora sì, con Sql Server ci credo.
ciao
MAssimiliano
p.s. ho provato quel link ma non riesco ad andarci. In realtà non parte
proprio. Mah.
Postami il sito che sono curioso di natura



Adesso dovrebbe andare.
Avevo giù l'HDSL per un problema Telecom...

 Avevo giù l'HDSL per un problema Telecom...
Complimenti per le foto.



Grazie

 ha scritto nel messaggio
news:bcbudp$ru1$1...@newsreader.mailgate.org...

Per la cronaca il problema l'ho risolto così:
un'unica tabella che contiene tutti i movimenti, due query che estraggono e
creano 2 tabelle separate una di carico e una di scarico, poi con altre 3
query aggiorno tutti i valori a 0, incremento i carichi e sottraggo gli
scarichi.
Ho fatto un paio di test arrivando fino a 10.000 righe e devo dire che tutte
le operazioni le svolge veloccissime anche il Jet senza nessuna interruzione
(diciamo in 1/2 seondo) ho stimato di avere circa 10-15.000 movimenti
all'anno qdi mi va benone (pensavo peggio). Al nuovo anno faccio una
chiusura di inventario e un'apertura così da storicizzare i movimenti
precedenti e rendere ancora più fluido il sistema.
Il tutto anche grazie a VOI.
Holla Colink