Totali progressivi e sequenza date

Discussioni sulle caratteristiche di database
Rispondi
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Totali progressivi e sequenza date

Messaggio da Axel70 »

riprendo qui la discussione iniziata in: https://ask.libreoffice.org/it/question ... e-in-base/ perchè il sistema di ask a risposta singola è un po' lento e macchinoso.
Nel database allegato (alcoli_rev3a) mi servirebbero i totali progressivi per giorno di carico e scarico, anche per i giorni in cui non ci sono movimenti. la query in oggetto (in cui ho provato ad usare coalesce senza successo) è R_TOT.
Mi è stata suggerita una possibile strada (vedi db_esempio), ma:
- non ho l'ID (parto da una vista)
- la query Q_run non funziona (forse perchè mi manca l'ID)
- mi serve che movimenti con stessa data si sommino
- mi servono comunque tutte le date, anche quelle in cui non ci sono movimenti.
Il database con le ultime prove(alcoli_rev3a) contiene i nuovi elementi frutto delle ultime prove: V_c_s , v_rank , Q_rank e Q_run
allego anche un file di testo in cui cerco di far capire come dovrebbe essere il risultato finale.
ringrazio fin d'ora chi può darmi un aiuto.
Allegati
totali.odt
risultato finale
(66.07 KiB) Scaricato 86 volte
db_esempio.odb
esempio
(9.62 KiB) Scaricato 89 volte
alcoli_rev3a.odb
mio database
(127.99 KiB) Scaricato 101 volte
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8806
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Totali progressivi e sequenza date

Messaggio da charlie »

Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
Axel70 ha scritto:- non ho l'ID (parto da una vista)
Ipotesi di lavoro:
L'esempio proposto fa leva su una chiave univoca e progressiva come l'ID. Se questo manca formulo l'ipotesi di poter ripiegare sulla data, campo univoco se non ci sono doppioni (eliminabili, come da tua esigenza, con la somma di contenuti con la stessa data). Ma le date senza movimenti chi le inserisce?

Certo che con un foglio di calcolo, sarebbe un gioco da ragazzi ... :?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

charlie ha scritto: L'esempio proposto fa leva su una chiave univoca e progressiva come l'ID. Se questo manca formulo l'ipotesi di poter ripiegare sulla data
infatti è quello che ho fatto, ma probabilmente sbagliando qualcosa...
charlie ha scritto:campo univoco se non ci sono doppioni (eliminabili, come da tua esigenza, con la somma di contenuti con la stessa data)
mi sono perso... come si fa ?
charlie ha scritto:Ma le date senza movimenti chi le inserisce?
Certo che con un foglio di calcolo, sarebbe un gioco da ragazzi ... :?
una macro? (di cui sono assolutamente ignorante), un sql INSERT ?
anche se non è bello, al massimo le inserisco manualmente....
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

sono arrivato a questo punto :
creazione di una vista con relazione molti a molti per accorpare carico e scarico, oltre a sommare i record con la stessa data:

Codice: Seleziona tutto

SELECT "V_somme"."data", 
SUM( "V_carico"."METANOLO" ) "carico", 
SUM( "V_scarico"."METANOLO" ) "scarico", 
COALESCE ( SUM( "V_carico"."METANOLO" ), 0 ) - COALESCE ( SUM( "V_scarico"."METANOLO" ), 0 ) "GIACENZA", 
SUM( COALESCE ( "V_carico"."METANOLO", 0 ) ) - SUM( COALESCE ( "V_scarico"."METANOLO", 0 ) ) "giacenza 2" 
FROM { oj "V_somme" LEFT OUTER JOIN "V_scarico" ON "V_somme"."data" = "V_scarico"."data" LEFT OUTER JOIN "V_carico" ON "V_somme"."data" = "V_carico"."data" } 
GROUP BY "V_somme"."data"
così mi trovo delle date in sequenza e il corrispondente di "Amount" del database di esempio.
A questo punto costruisco la vista "vRank" in cui compare data e "punteggio", l'ID non lo ho (perchè parto da una vista), quindi tralascio la parte che lo riguarda rispetto al db di esempio:

Codice: Seleziona tutto

SELECT "data", "GIACENZA", 
( SELECT COUNT( * ) FROM "V_TOT" WHERE "data" < "A"."data" ) + ( SELECT COUNT( * ) FROM "V_TOT" WHERE "data" = "A"."data" ) "PUNTEGGIO" 
FROM "V_TOT" "A"
ora, provando ad adattare il "qRunningTotal_Rank_SQL" del db di esempio per trovarmi la somma progressiva:

Codice: Seleziona tutto

SELECT "A"."data", 
( SELECT SUM( "GIACENZA" ) FROM "v_rank" WHERE "PUNTEGGIO" <= "R"."PUNTEGGIO" ) "Progressivo" 
FROM "v_rank" "R", "V_TOT" "A" 
WHERE "R"."data" = "A"."data" 
ORDER BY "R"."PUNTEGGIO" 

il risultato è quello sperato !!!
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8806
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Totali progressivi e sequenza date

Messaggio da charlie »

Ciao, volevo provare la tua soluzione ma il codice della prima Vista dà errore: tabella non trovata. Credo si tratti di V_somme.
Perché non alleghi il file?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

funziona normalmente tutto, non serve andare in modalità SQL :D

(nel frattempo sono andato avanti aggiungendo il secondo componente)
Allegati
alcoli_rev3b.odb
(127.59 KiB) Scaricato 102 volte
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

Ho provato ad inserire manualmente tutte le date del mese 06/18 nella tabella Cli_Vendite e ho notato una cosa curiosa: se presente la data del 12/06 (data che compare in acquisti, vendite e via) i conti si scombussolano, se la tolgo si sistema tutto...

qualche spiegazione ?
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8806
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Totali progressivi e sequenza date

Messaggio da charlie »

Axel70 ha scritto:funziona normalmente tutto ...
Bravo :super:
Axel70 ha scritto:se presente la data del 12/06 (data che compare in acquisti, vendite e via) i conti si scombussolano
Non saprei, quella data era già presente, come pure quella dell'08/06. Prova ad allegare nuovamente il file per potere vedere.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

le date aggiunte (manualmente) sono nella tabella Cli_Vendite, il risultato errato si trova nella query Q_run a partire dal giorno 12/06
Allegati
alcoli_rev3c_errore.odb
(128.86 KiB) Scaricato 88 volte
alcoli_rev3c.odb
(128.79 KiB) Scaricato 89 volte
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8806
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Totali progressivi e sequenza date

Messaggio da charlie »

Per controllare, ho aggiunto le colonne delle giacenze e non mi pare ci siano errori.
Allegati
Schermata 2018-07-26 alle 10.36.05.png
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Axel70
Messaggi: 8
Iscritto il: giovedì 19 luglio 2018, 16:15

Re: Totali progressivi e sequenza date

Messaggio da Axel70 »

al 12/06, per quanto riguarda il metanolo, abbiamo carichi per un totale di 15000 (10000+5000) e scarichi per 12870 (10000+1500+1370), quindi il valore corretto al 12/06 è 2130.
Allegati
errato
errato
corretto
corretto
LibreOffice_5.4.6.2 (x64) su Winzozz 10
Rispondi