credo che questo fa parte del passato, come vedi sono sempre quà in cerca di soluzioni.
credo che questo fa parte del passato, come vedi sono sempre quà in cerca di soluzioni.
Non c'è nessuno che può aiutarmi ?
Freddy ti hanno già detto che in un forum si risponde quando e se si vuole e sollecitare non è visto di buon occhio oltre che da evitare.
Ultima modifica di AntonioG; 15-12-2020 19:30
Se
- usi un solo campo per gli importi (che chiami Importo) ed elimini Dare e Avere (con Importo positivo per Avere e negativo per Dare)
- usi un campo di tipo DateTime per la Data registrando la data completa di orario (con millisecondi)
allora la query da cui partire può essere
SELECT I1.Data, I1.Importo, SUM(I2.Importo) AS [Saldo Progressivo] FROM Contabilita I1 JOIN Contabilita I2 ON I2.Data <= I1.Data GROUP BY I1.Data, I1.Importo ORDER BY I1.Data
Ultima modifica di AntonioG; 15-12-2020 20:15
Ti ringrazio ma facendo come tu dici dovrò stravolgere il programma e poi a me piace distinguere le entrate le uscite.
Ho visto molti programmi di contabilità familiare che adottano il metodo da me proposto.
Adesso io ho improntato il mio programma con entrate ed uscite e ho molte operazioni registrate.
Questa è l'unica soluzione per il saldo progressivo, come vorrei fare io non si può fare?
Potresti cambiare la query con
SELECT I1.Data, I1.Avere, I1.Dare, SUM(I2.Avere - I2.Dare) AS [Saldo Progressivo] FROM Cont I1 JOIN Cont I2 ON I2.Data <= I1.Data GROUP BY I1.Data, I1.Avere, I1.Dare ORDER BY I1.Datama da questo momento in poi, fai tu le prove.
Le entrate e le uscite le distingui comunque: basta guardare il segno dell'importo memorizzato nel campo, come ti è stato indicato.
Ed eseguire il saldo diventerebbe banale, perché è sufficiente sommare gli importi del campo univoco per ottenere direttamente il valore del saldo corretto, filtrando solo il periodo che si desidera.
Avere due campi poi non serve a nulla, oltre a occupare più spazio e ridondare una informazione che complica solamente la logica (come si evince da questa situazione), dato che compilerai sempre l'uno o l'altro per ogni record, quindi dovrai necessariamente gestire valori NULL quando potresti evitarlo, fra le altre cose.
Una volta creato il nuovo campo unico, con un minimo di SQL è facile aggiornare tutti i record mettendo i valori nel nuovo campo con il segno giusto in base al valore presente negli altri due.
Si può fare tutto.
Il problema è che già si sa che suggerimenti generici non saranno sufficienti, e si dovrà produrre la query esatta che serve allo scopo, altrimenti non se ne uscirà. O almeno questa è l'andamento di tutte le altre discussioni aperte a tuo nome.![]()