[Risolto] Aggiornamento campo

Discussioni sulle caratteristiche di database
Rispondi
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

[Risolto] Aggiornamento campo

Messaggio da strulga »

Ciao Sempre nel database magazzino erboristico, ho creato una vista per il magazzino, e vorrei che ogni volta che acquisto un ingrediente, mi si aggiorni la sua quantità in un campo di suddetta vista.
Per esempio, ogni volta che acquisto del miele, Il campo "Q" della vista "VMagazzino" si incrementi della nuova quantità di miele che ho inserito nella tabella "MateriePrime".
Non riesco a farlo, perchè per ora riesco solo a creare nuovi campi ma non aggiornarne uno esistente.
graize dell'aiuto. allego db.
Allegati
strulgone_b.odb
(45.92 KiB) Scaricato 154 volte
Ultima modifica di strulga il domenica 30 luglio 2017, 23:03, modificato 2 volte in totale.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Aggiornamento campo

Messaggio da charlie »

Comincia a sistemare Q da campo stringa a numerico viewtopic.php?f=13&t=8425, poi ne riparliamo.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

ECCO Fatto!
Adesso Q è Numeric, ma ho ancora un blocco nel capire come fare ad aggiornare un campo senza crearne uno nuovo.

SELECT "VMagazzino".*,
"VMagazzino"."Quantità" + "VMagazzino"."Q" AS "NQ"
FROM "VMagazzino"

l'ho chiamatoNQ, per differenziarlo da Q, perchè se dico AS "Q", mi crea una nuova colonna Q.
Allegati
strulgone.odb
(45.69 KiB) Scaricato 148 volte
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Aggiornamento campo

Messaggio da charlie »

Fai la somma per gruppo ID in una query:

Codice: Seleziona tutto

SELECT SUM( "Quantità" ) AS "Totale", "ID_MateriePrime" FROM "MateriePrime" GROUP BY "ID_MateriePrime"
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Mi sfugge la logica.
Perchè dovrei fare quella somma in ogni tabella (MateriePrime, Estratti; Imballaggi, Erbe)?
e perchè poi dovrei raggrupparli per categoria (es. FROM "Materie prime")?
io vorrei che in VMagazzino mi rimanga un campo (per es.Totale) in cui si sommano di volta in volta i nuovi acquisti di materiale

Es. In "MateriePrime" a Marzo segno 2 nel campo "Quantità" riferite all'ID_MateriePrime (MIEL), E la query aggiunge 2 al campo "Q" di VMagazzino. Poi ad Aprile Sostituisco " con 3 in MateriePrime Quantità MIEL, e la query aggiunge 3 al valore precedente del campo "Q" di VMagazzino che ora riporterà il valore 5 (3+2).
Non capisco come procedere.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Aggiornamento campo

Messaggio da charlie »

Io non ho capito l'operazione di aggiungere Q che metti sempre =1.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Q = 1 è un numero a caso che ho messo per vedere se funzionava l'addizione, al massimo dovrei farlo incominciare da Q=0. Poi dovrebbero sommarsi (o sottrarsi) le quantità di materiale ogni volta che ne acquisto (o uso) una. es miele: marzo Q=0 Aprile + 2 kg di miele Q=2, Giugno +5 Kg Q=7, Settembre -3 Kg Q=4, Dicembre +2 Kg Q=6.
E' solo un esempio questi dati relativi al miele non sono inseriti nel database.
Spero si capisca questa spiegazione.
LibreOffice 5.3.0.3 su Windows 7
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Forse inizio a capire la logica, ma ancora sono in alto mare. dovrei seguire però una strategia diversa.
è possibile che ogni acquisto venga registrato in una tabella autocompilante, come nuova colonna?
ES:
Vmagazzino raccoglie i dati di tutte le tabelle (Chiamiamole "TabelleProdotti") che hanno a che fare con i miei acquisti: Erbe, Estratti, Imballaggi, MateriePrime, Ortofrutta...Creando un ID univoco per tutte queste categorie

Ogni volta che in una di queste TabelleProdotti cambio il valore data e quantità, una query registra questi valori in una tabella tipo VMagazzino ordinata per ID, e che presenterà tutti gli inserimenti che io ho fatto.
Per cui nel Caso della TabellaProdotti "MateriePrime" e della riga relativa a "Nome"= 'Miele' : Ad Aprile digito in "Quantità"=2 ,a Giugno "Quantità"=5, a Settembre "Quantità"=3, a Dicembre "Quantità"=2.

In modo che si crei una tabella con l'ID del prodotto (MIEL), e i campi "Data1"=Aprile, "Quantità1"= 2, "Data2"=Giugno, "Quantità2"=5, "Data3"="Settembre", "Quantità3"=3, "Data4"=Dicembre, "Quantità4"= 2 e così via. E alla fine della riga un campo "Totale" in cui mi si sommano tutte le "Quantità".

E' possibile farlo?
è possibile generare una tabella che automaticamente mi crei questi campi?
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Aggiornamento campo

Messaggio da charlie »

No, non è possibile, non ci sono bacchette magiche che generano campi :D .
Funziona più o meno così: puoi avere una tabella Acquisti in cui ad ogni acquisto generi un record (riga) con data, quantità, ingrediente. In una query calcoli i totali per ingrediente. Analogamente avrai una tabella dove registri il "consumo" di ogni ingrediente, un record per ognuno oppure un record unico con tutti gli ingredienti. Un'altra query calcola i totali consumati per ingrediente. Facendo la differenza fra i due totali ottieni quanto ti rimane a disposizione.
Sempre che abbia interpretato bene le tue esigenze ...
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Grandissimo mi metto subito al lavoro!
LibreOffice 5.3.0.3 su Windows 7
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Ci sto lavorando e pian piano i pezzi vanno a posto.

DOMANDA:
E' possibile con una query, invertire Tutti i valori di un campo numerico da positivi a negativi?
Per esempio, ho realizzato una tabella unica con tutti gli ingredienti prelevati e le loro quantità. vorrei cambiare il valore delle quantità da + a -, in modo da diversificarli dai valori quantità rispetto a quelli positivi della tabella acquisto.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Aggiornamento campo

Messaggio da charlie »

Codice: Seleziona tutto

NomeCampo * -1
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 63
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Aggiornamento campo

Messaggio da strulga »

Finalmente ce l'ho fatta! grazie mille Charlie!
Ho lavorato creando una query
"acquisti" ed una "prelievi",
in acquisti ho inserito tutti i record ordinati per "data" e "id", relativi ai prodotti acquistati, raccolti e preparati,
mentre in prelievi tutti gli ingredienti parziali e la vetreria usati nelle ricette
Le due query presentano i seguenti campi:
"ID", "Data", "Quantità" .
Nella query "Prelievi", ho attribuito un valore negativo ai record "quantità", poi ho creato una terza query (TrafficoMagazzino), in cui compaiono i dati di acquisti e prelievi, ordinati per data e ID. Si riesce a capire se sono acquisti o prelievi dal valore negativo o positivo nella tabella quantità.
E il gioco è fatto!
allego database con il lavoro fatto.
grazie mille ancora!
Allegati
strulgone.odb
(75.19 KiB) Scaricato 167 volte
LibreOffice 5.3.0.3 su Windows 7
Rispondi