Newsgroup: it.comp.lang.visual-basic
Titolo: grid con saldi

Ciao a tutti ! ho un database con i campi dare e avere ! mi spiegate come
posso caricare i dati dare e avere in una grid e creare una colonna saldo(
quindi una colonna calcolata )
Grazie a tutti a chi avrą la pazienza di aiutarmi

[Rwen = 
circ...@xxx.com
 in cat0u8$uj3$
1...@newsreader.mailgate.org
] ha
scritto:

Select Dare, Avere, Dare-Avere As Saldo From Tabella


Ti ringrazio Lupo , ma forse non mi sono spiegato bene. la colonna saldo
deve essere tipo un saldo bancario.
es:
Dare|__Avere|__Saldo
100                     100
               40          60
100                     100
grazie a tutti

 ha scritto nel messaggio
news:caughd$lj9$1...@newsreader.mailgate.org...

Una cosa del genere l'ho fatta usando delle UNION tra più query.
Ciao, Vincenzo


puoi essere un pò più preciso ?
grazie tante

Rwen chiede

Prova con qesta query (testata su SQL Server 2k)
SELECT dare, avere, saldo=
(SELECT  SUM(dare)-SUM(avere)
FROM tabella T Where 
T.ID
 <= tabella.ID)
FROM tabella
questo presuppone un campo ID indice.
Altrimenti sostituiscilo col campo (N_Operation, campo data) sul quale
ordini i movimenti.
-- 
Ciao, Silv:o)

 ordini i movimenti.
Grazie per la risposta
Io uso un db access e quando uso quella query mi dice che non riesce a crare
il recordset :(


Per essere più preciso avrei bisogno di sapere come sono organizzati i tuoi
file.
Nel mio getionale ho 2 tabelle:
EFA = Fatture
EFAP = Pagamenti fatture
Io ho 3 SELECT dove:
1) nella prima leggo l'importo fattura e la metto in una colonna (Dare)
2) faccio la somma dei pagamenti e li metto nella colonna (Avere)
3) faccio la differenza tra Dare e Avere e la metto nella terza colonna
(Saldo)
Ciao, Vincenzo

 Ciao, Vincenzo
Io carico già un database con dare e avere ( se in un campo c'è il dare ,
l'avere non c'è e viceversa )
i devo creare una colonna saldo come nell'esempio precedente
Dare|__Avere|__Saldo
100                     100
               40          60
100                     160
              30         130
etc
quindi , i campi dare e avere già esistono e ho bisogno di creare una
colonna saldo che faccia quello in figura
grazie di cuore


Ho capito di quello che hai bisogno ma non risco a capire se il dare e
l'avere li hai su un unico record oppure in due record distinti.
Ciao, Vincenzo

 il recordset :(
perň, con un po' di sforzo....  ;)
SELECT dare, avere, (SELECT  SUM(dare)-SUM(avere)
FROM tabella T Where 
T.ID
 <= tabella.ID) AS saldo
FROM tabella
-- 
Ciao, Silv:o)

 Ciao, Vincenzo
Sono in 2 campi diversi ( campo dare e campo avere )
Grazie

 saldo deve essere tipo un saldo bancario.
Hai ragione. Lo dico con palese ironia, ma se rileggi il tuo post ti eri
spiegato benissimo, dicendo altro. ;-)

 spiegato benissimo, dicendo altro. ;-)
:)
grazie per la risposta,  ma facendo come mi hai detto tu non esce come serve
a me :(
a me serve una cosa del genere
Dare|__Avere|__Saldo
100                     100
               40          60
100                     160
              30         130
come mi dici tu , esce così
Dare|__Avere|__Saldo
100                     100
               40         -40
100                    -100
              30          -30
Grazie

 come serve a me :(
Rwen, ho capito che non capisci l'ironia.
La mia risposta otteneva esattamente quanto avevi chiesto nel tuo primo
post.
Solo che tu volevi altro.
Piuttosto, le risposte che altri ti hanno dato hanno risolto il problema? Se
sě, diglielo.

 sě, diglielo.
no ! non ho risolto il mio problema. ho avuto varie rispote ma nessuna ha
risolto il mio problema

[Rwen = 
circ...@xxx.com
 in cavk8j$2o6$
1...@newsreader.mailgate.org
] ha
scritto:

Ci provo io. Nessun impegno sui tempi (nč sul risultato), ma mi intriga.
Sganciati pure, come farň io adesso.


Grazie per la compassione :)

 Grazie per la compassione :)
Ipotizza che la tua tabella vera si chiami Tab1 e che contenga i campi Dare,
Avere e ID.
T2 č una tabella fittizia/alias con nome inventato (credo che non debba
corrispondere a una tabella fisicamente esistente, ma non ne sono sicuro).
E' fondamentale che ID sia un contatore che rappresenti la progressione di
ogni record.
Intendiamoci, potrebbe essere una campo che contiene la date
dell'operazione, ma deve essere univoco, quindi servirebbe anche, in stretta
combinazione con la data, un numero operazione per poter distinguere (e
ordinare) univocamente una singola operazione. Nel caso sostituisci a ID,
per esempio, Data e Numero (due campi)
Lo scopo č quello di ottenere un Order By che garantisca che le operazioni
vengono sempre considerate esattamente nell'ordine cronologico di
competenza, in modo che il saldo conseguente sia progressivo e sempre
coerente anche se si accodano operazioni (ovvio che se se ne inseriscono ...
tutto cambia anche retroattivamente)
Select
Tab1.Dare,
Tab1.Avere,
(Select Sum(T2.Dare-T2.Avere) From Tab1 As T2
Where T2.Id<=Tab1.Id) As Saldo,
Tab1.Id
From Tab1
Order By Id

> Piuttosto, le risposte che altri ti hanno dato hanno risolto il

Arghhhh! Sicuro?
Personalmente avevo lasciato scorrere questo topic, ma ora, osservando
meglio, occorre rendere onore al merito, almeno quello di primo arrivato, a
Silvio Sergio, col suo post del 18-06, 15:59.
Rwen, dovresti scusarti con lui.
Quelle istruzioni funzionano egregiamente e, salvo un necessario Order By
per non avere progressivi "casuali" in elaborazioni diverse, sono identiche
alle mie.


hai ragione !
Chiedo umilmente perdono a "Silvio Sergio" !!! e giuro che se passate dalle
parti Modena avrete da pagato da bere e da mangiare :) !

prova in questo modo:
premesso che abbia una tabella con un campo "tipo" gia impostato a dare e
avere:
If rscausali.Fields("tipo") = "DARE" Then
    varsaldo = varsaldo - txtimporto.Text
    rsmovimenti.Fields("saldo") = varsaldo
Else
    rsmovimenti.Fields("avere") = CDbl(txtimporto.Text)
    varsaldo = varsaldo + txtimporto.Text
    rsmovimenti.Fields("saldo") = varsaldo
End If


 prova in questo modo:
...
Paolo, si voleva un comando SQL che producesse un recordset completo di
saldo.
Analizzando il recordset originario (la tabella) si può fare quel che si
vuole,
ma non certo creare un campo Saldo nella tabella originaria...