[RISOLTO]Problema campo calcolato ricerca

Discussioni sulle caratteristiche di database
Rispondi
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

[RISOLTO]Problema campo calcolato ricerca

Messaggio da jimjack12 »

Salva a tutti,
lo so che sto rompendo un po, però mi manca, spero, un ultimo passaggio per completare il mio database riferito alla gestione magazzino;
visto che non è possibile creare campi calcolati sui formulari, ho creato una ricerca per effettuare un calcolo riferito alla giacenza degli articolo;
il problema è che quando inserisco la tabella riferita algli acquisti, tutto funziona bene, mentre appena inserisco la tabella riferita alle vendite, alcuni record non vengono visualizzati in quanto la ricerca non trova corrispondenze relative, credo;
questo perchè, carico gli articoli, però la vendita su alcuni, non la effettu subito e quindi non ci sono record.
Sicuramente sarà una domanda banale, però non sto riuscendo a risolvere questo problema.
Grazie
Ultima modifica di jimjack12 il sabato 17 dicembre 2011, 18:27, modificato 1 volta in totale.
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: Problema campo calcolato ricerca

Messaggio da vladko »

se puoi mettere la query e spiegare cosa deve fare riferito alla query vediamo di modificare
per vedere copiare la query aprire la ricerca in modalità modifica in vista sql
grazie
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

Grazie vladko, scusa il ritardo e la poca chiarezza;
cercherò di essere più chiaro: ho necssità di creare una ricerca che mi permetta di avere la giacenza del mio magazzino, andando a sottrarre alla tabella "Acquisti" le quantita della tabella "Vendite".
Il problema è che fin quando non effettuo una vendita di un determinato articolo, la query non mi visualizza la giacenza di quell'articolo.
Questo sotto è il comando sql della query generato automaticamente:

Codice: Seleziona tutto

SELECT "Articoli"."Descrizione", SUM( "Acquisti"."Quantita" ) AS "Quantita x Articolo", SUM( "Vendite"."Quantita" ) FROM "Acquisti", "Articoli", "Vendite" WHERE "Acquisti"."IDArticolo" = "Articoli"."ID" AND "Vendite"."IDArticolo" = "Articoli"."ID" GROUP BY "Articoli"."Descrizione"
Immagine[/img]

Uploaded with ImageShack.us
Comunque grazie di nuovo
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: Problema campo calcolato ricerca

Messaggio da vladko »

ok ora capito
problema di campi vuoti che risolvi con COALESCE

Codice: Seleziona tutto

SUM( COALESCE ( "Vendite"."Quantità", 0 ) 
cosa fa:

se presente un valore di campo dichiarato (in esempio è "Vendite"."Quantità") inserisce il valore
se non presente (,)
inserisce 0
così si risolve per quanto riguarda valori non presenti
ora non so se ci vuole anche qualche join tra tabelle, se vuoi un controllo puoi inviare db con dati falsi si può vedere meglio
fai sapere grazie
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

vladko oltre ad essere un grande sei anche una persona squisita davvero....
hai capito esattamente il problema; appena ho un'oretta libera (ho problemi di salute con mio padre), faccio qualche prova, eventualmente ti invio il db di prova; comunque grazie.
Un'ultima domanda: graficamente quindi, non potevo mai risolvere questo problema?

Grazie
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: Problema campo calcolato ricerca

Messaggio da vladko »

si certo, ma questo lo lascio scoprire a te. ;)

un consiglio

per un magazzino meglio usare
qta iniziale +qta acquisto -qta vendita -qta scarto =giacenza

cosi hai tutto sotto controllo: inventario, azzerare campi, eliminare articoli difettosi rotti, etc
mi raccomando fare sempre copie di backup

p.s. auguri per tuo padre
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

Ciao vladko e scusami,
volevo inserire il db di prova in quanto sto facendo un pò di confusione......
però, come mai non riesco ad inserire allegati? Mi restituisce:

Codice: Seleziona tutto

Il limite massimo di allegati impostato è stato raggiunto.
Grazie ancora
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: Problema campo calcolato ricerca

Messaggio da vladko »

devi usare temporaneamente un servizio di condivisione file esterno
c'è un problema generale di inviare allegati con il forum
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

Ok vladko, l'avevo immaginato.
Ti allego db di prova (non badare alla grafica) su cui non sono riuscito a risolvere il problema precedente.
http://www.megaupload.com/?d=PWR4JCMQ
Grazie
OpenOffice 4.1.6 su Debian Stretch
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

vladko, gentilmente puoi aiutarmi?
ho fatto qualche prova con l'istruzione "COALESCE", ma niente, non sto riuscendo a risolvere purtroppo.

Grazie
OpenOffice 4.1.6 su Debian Stretch
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

Comunque l'indicazione di vladko è stata corretta ed indispensabile
infatti dopo svariate prove ho risolto creando una ricerca in vista sql in questo modo:

Codice: Seleziona tutto

SELECT Articoli.Descrizione,
SUM(COALESCE(Acquisti.Quantita,0)) - SUM(COALESCE(Vendite.Quantita,0)) AS
Giacenza
FROM Articoli
LEFT JOIN Acquisti ON Acquisti.IDArticolo=Articoli.ID
LEFT JOIN Vendite ON Vendite.IDArticolo=Articoli.ID
GROUP BY Articoli.Descrizione
L'unico dubbio, se cosi si può chiamere, è che creando la ricerca in vista struttura, con il join interno e relazione a "sinistra", esce fuori sempre un errore.
Comunque problema risolto.
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da vladko »

Codice: Seleziona tutto

SELECT "Articoli"."Descrizione",
SUM(COALESCE("Acquisti"."Quantita",0)) - SUM(COALESCE("Vendite"."Quantita",0)) AS
"Giacenza"
FROM "Articoli"
LEFT JOIN "Acquisti" ON "Acquisti"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Vendite" ON "Vendite"."IDArticolo"="Articoli"."ID"
GROUP BY "Articoli"."Descrizione"
virgolette ;)
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da jimjack12 »

vladko ha scritto:

Codice: Seleziona tutto

SELECT "Articoli"."Descrizione",
SUM(COALESCE("Acquisti"."Quantita",0)) - SUM(COALESCE("Vendite"."Quantita",0)) AS
"Giacenza"
FROM "Articoli"
LEFT JOIN "Acquisti" ON "Acquisti"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Vendite" ON "Vendite"."IDArticolo"="Articoli"."ID"
GROUP BY "Articoli"."Descrizione"
virgolette ;)
Scusami vladko....
però a quanto pare in modalita struttura non è ancora possibile fare tutto quanto, vero?
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da vladko »

in modalità struttura coalesce si join no
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da jimjack12 »

Scusami vladko se riapro una discussione già chiusa;
sono riuscito a creare la stessa query in modalità grafica seguendo questa procedura:
come da schermata sotto, nella prima colonna ho inserito il campo "Descrizione" della tabella "Articoli" ed ho inserito nella funzione "Gruppo"
nella seconda colonna ho inserito le istruzioni (come suggerito da vladko):

Codice: Seleziona tutto

Somma( COALESCE ( "Acquisti"."Quantita", 0 ) ) - Somma( COALESCE ( "Vendite"."Quantita", 0 ) )
Immagine

Uploaded with ImageShack.us

fatto ciò, per creare il join interno (le relazioni interne della query non intaccano le relazioni delle tabelle) ho dovuto modificare le due relazioni in questo modo:

Immagine

Uploaded with ImageShack.us

Dove nella voce "Campi considerati", la prima colonna deve essere obbligatoriamente riferita alla tabella "Articoli" ed il campo "ID" con relazione a sinistra. Stessa identica cosa per il join riferito alla tabella "Vendite".
Ho notato un'altra cosa comunque, che utilizzando OpenOffice 3.3 dando l'anteprima, la query restituiva un errore in modalità modifica, mentre aprendola funzionava.
Invece utilizzando LibreOffice 3.3 (come da immagine sopra) il problema non sussiste.

Un saluto a tutto il Forum e un ringraziamento a vladko
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da vladko »

ottimo!!! puoi fare una piccola guida con titolo
[BASE] Creare Query con Join tra tabelle (o quello che vuoi tu ma almeno [BASE] per distinguere)
e mettere in tutorial?
magari anche al riferimento di questo post di come è nata la guida
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da jimjack12 »

vladko ha scritto:ottimo!!! puoi fare una piccola guida con titolo
[BASE] Creare Query con Join tra tabelle (o quello che vuoi tu ma almeno [BASE] per distinguere)
e mettere in tutorial?
magari anche al riferimento di questo post di come è nata la guida
Si vladko, appena ho 10 minuti, preparo una piccola guida come mi hai consigliato;
sinceramente ci avevo pensato, ma non credevo fosse un argomento rilevante.

Ciao e grazie
OpenOffice 4.1.6 su Debian Stretch
danielinux
Messaggi: 1
Iscritto il: domenica 22 gennaio 2012, 11:37

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da danielinux »

Ho seguito le indicazioni di questo thread e la guida presente su http://www.softwarefacile.altervista.or ... a_base.pdf, ma la ricerca non mi funziona correttamente se carico più vendite successive per uno stesso articolo. Dove sbaglio?
In modo meno elegante ho risolto creando 3 ricerche:
  • - una con la funzione somma sulle quantità per articolo dalla tabella acquisti;
    - una con al funzione somma sulle quantità per articolo dalla tabella vendite;
    - una terza che sottrae le vendite dagli acquisti, con un join tra la tabella articoli e le ricerche acquisti e vendite.
C'è un modo per calcolare la giacenza corretta con un'unica query?
Allegati
magazzino.odb
(45.61 KiB) Scaricato 206 volte
Libreoffice 3.4.4 su Ubuntu 11.10
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da vladko »

query1
fai sapere grazie

Codice: Seleziona tutto

SELECT "Articoli"."Descrizione", 
COALESCE ( "somma_acquisti"."tot_acquisti", 0 ) - COALESCE ( "somma_vendite"."tot_vendite", 0 ) AS "Giacenza" 
FROM "Articoli" 
LEFT OUTER JOIN 
	( SELECT "IDArticolo", 
		SUM( "Quantità" ) AS "tot_acquisti" 
	FROM "Acquisti" 
	GROUP BY "IDArticolo" ) AS "somma_acquisti" 
	ON "Articoli"."ID" = "somma_acquisti"."IDArticolo" 
LEFT OUTER JOIN 
	( SELECT "IDArticolo", 
		SUM( "Quantità" ) AS "tot_vendite" 
	FROM "Vendite" 
	GROUP BY "IDArticolo" ) AS "somma_vendite" 
	ON "Articoli"."ID" = "somma_vendite"."IDArticolo"
Allegati
magazzino.odb
(46.03 KiB) Scaricato 285 volte
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: Problema campo calcolato ricerca

Messaggio da jimjack12 »

Salve a tutti;
effettivamente testando il mio database, mi sono accorto che come dice bene danielinux, occorreva avere tre query al posto di una, ma come al solito, grazie al fantastico supporto di Vladko, funziona tutto bene con una singola query.

Per quanto riguarda le mie esigenze, quanto creato prima è l'ideale, anche se, come consiglia Vladko:
vladko ha scritto: un consiglio
per un magazzino meglio usare
qta iniziale +qta acquisto -qta vendita -qta scarto =giacenza
Vladko, quando hai un po di tempo, saresti cosi gentile da fare un esempio di database ed allegarlo, cosi da avere più idee a disposizione per qualche altro utente e chiudere questa discussione?
Comunque sei un grande davvero, ti faccio i miei complimenti.

Grazie.

Jim
OpenOffice 4.1.6 su Debian Stretch
vladko
Messaggi: 1637
Iscritto il: martedì 3 agosto 2010, 8:02

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da vladko »

soluzione minima
creare una tb iniziale(viene usata anche per inventari) e una scarto con
idiniziale(o scarto)
data
idarticolo
qta

quando un articolo nel magazzino è rotto rovinato rubato etc inserisco la voce nella tabella scarto
quando ho un nuovo articolo inserisco nella tb iniziale la quantità iniziale che può essere 0 oppure nulla

vedere la giacenza

Codice: Seleziona tutto

SELECT "Articoli"."Descrizione",
SUM(COALESCE("Acquisti"."Qta",0)) - SUM(COALESCE("Vendite"."Qta",0)) -SUM (COALESCE("Scarto"."Qta",0))- SUM(COALESCE("Iniziale"."Qta",0))  AS
"Giacenza"
FROM "Articoli"
LEFT JOIN "Acquisti" ON "Acquisti"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Vendite" ON "Vendite"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Scarto" ON "Scarto"."IDArticolo"="Articoli"."ID"
LEFT JOIN "Iniziale" ON "Inventario"."IDArticolo"="Articoli"."ID"
GROUP BY "Articoli"."Descrizione"
AOO 3.4.1 AOO341m1(Build:9593) Linux Mint Debian/Mate 64bit java 1.6.0.22 XP PRO/32bit
con Base --> sempre backup!!!
Se problema è Risolto --> Inserire [Risolto]nel titolo come spiega qui, grazie :-)
jimjack12
Messaggi: 48
Iscritto il: giovedì 28 aprile 2011, 10:52

Re: [RISOLTO]Problema campo calcolato ricerca

Messaggio da jimjack12 »

Un grazie a Vladko per la sua disponibilità e la sua enorme pazienza....
Ottimo consiglio;
mi permetto di linkare anche un'altra procedura abbastanza semplice per creare un mini magazzino con base (mi scuseranno gli amministratori del forum):
http://ooobasic.tuxfamily.org/

Cosi chiudiamo questa discussione.

Ciao

jim
OpenOffice 4.1.6 su Debian Stretch
Rispondi