Newsgroup: it.comp.lang.visual-basic
Titolo: conteggio incrementale4

Ho una tabella contenente i seguenti valori(da considerare come partite 
successive tra squadre di calcio,anche delle centinaia)
dovrei calcolare ad ogni riga(nei campi ContaPartitePro1 e ContaPartitePro2) 
il totale progressivo delle partite giocate da ogni squadra,
fino a quel momento tenendo per� presente l'ultimo totale progressivo che 
deve essere attinto durante il calcolo
sia dal campo ContaPartitePro1 che dal campo ContaPartitePro2
TabellaPartite
 Casa          Fuori     ContaPartitePro1     ContaPartitePro2
 a1                a2
 a3                a4
 a4                a5
 a3                a2
 a1                a5
 a6                a5
 a5                a6
La tabella � gi� riempita nelle prime due colonne che sono fisse,non c'�
inserimento
e neppure la modifica di record esistenti,c'� solo da calcolare i valori di
ContaPartitePro1 e ContaPartitePro2 su tutta la lista una sola volta.
Sono riuscito con la procedura di cui sotto a creare la seguente tabella
inserendo un campo contatore(ID)
 Casa        Fuori     ContaPartitePro1     ContaPartitePro2        ID
 a1                a2             1                        1 
1
 a3                a4             1                        1 
2
 a4                a5             1                        1 
3
 a3                a2             2                        2 
4
 a1                a5             2                        2 
5
 a6                a5             1                        3 
6
 a5                a6             1                        1 
7
Purtroppo il calcolo incrementale � giusto ma solo sulle singole colonne 
(vedi per
esempio a5)
nella partita a4-a5 il valore di ContaPartitePro1 dovrebbe essere per� 2 e 
non 1
infatti a4 in precedenza ha gi� giocato una partita con a3 e nella partita 
a5-a6
il valore del campo ContaPartitePro1 dovrebbe essere 4 e non 1)
La tabella corretta deve essere cos�:
 Casa        Fuori     ContaPartitePro1     ContaPartitePro2        ID
 a1                a2             1                        1 
1
 a3                a4             1                        1 
2
 a4                a5             2                        1 
3
 a3                a2             2                        2 
4
 a1                a5             2                        2 
5
 a6                a5             1                        3 
6
 a5                a6             4                        2 
7
(Notare per meglio capire gli ultimi due incontri di a5,nell'ultimo campo vi 
� un
progressivo di 3 e poi nell' ultimo record di 4).
Non si tratta di calcolare i progessivi SEPARATI di casa e fuori casa,
ma i progessivi reciproci o assoluti per ogni squadra sui due campi (va bene 
il termine?).
Sul newgroup di It.delphi non sono riusciti a risolvere,chiedo aiuto a 
codesto newgroup.
Grazie Paolo
procedure TForm1.Button1Click(Sender: TObject);
begin
  TPartite.First;
    While not TPartite.Eof Do
 Begin
                 with QueryContaCasa do begin
close;
SQL.Clear;
SQL.Add('select Casa,count(Casa)as ContaPartitePro1');
SQL.Add('from TPartite');
SQL.Add('where Casa =:SquadraA and ID <=:ID1');
SQL.Add('group by Casa');
ParamByName('SquadraA').Value :=TPartiteCasa.AsString ;
ParamByName('ID1').Value :=TPartiteID.AsInteger ;
open;
    end;
                     with QueryContaFuori do begin
close;
SQL.Clear;
SQL.Add('select Fuori,count(Fuori)as ContaPartitepro2');
SQL.Add('from TPartite');
SQL.Add('where Fuori =:SquadraB and ID <=:ID1');
SQL.Add('group by Fuori');
ParamByName('SquadraB').Value :=TPartiteFuori.AsString ;
ParamByName('ID1').Value :=TPartiteID.AsInteger ;
open;
    end;
    TPartite.Edit;
    TPartiteContaPartitePro1.AsInteger:=QueryContaCasa.AsInteger 
;/////secondo me
qui ci vorrebbe del codice ad hoc,ma forse non � qui che bisogna 
intervenire.
    TPartiteContapartitePro2.AsInteger:=QueryContaFuori.AsInteger ;
    TPartite.Edit;
    TPartite.Post;
   TPartite.Next;
 end;
end; 

 successive tra squadre di calcio,anche delle centinaia)
nONcIhOcAPITOUncazzo....
Ora: hai 2 colonne,  nella colonna 1 ci sono dei nomi (okay, saranno
squadre di calcio ma potrebbero essere frutti fiori animali o nomidicitta')
quindi, in colonna 1 ci sono dei nomi, e in colonna 2 altri nomi.
dato per scontato che sia in colonna 1 che in colonna 2 lo stesso nome
puo' essere presenti N volte (quindi puo' ripetersi), non ho capito
cosa vuoi che ci sia nelle colonne 3 e 4 ...
Ci vuoi:
il TOTALE delle volte che il nome compare in una determinata colonna
(es colonna 3 corrisponde al n. delle volte che "banane" compare
in colonna 1 e tale dato deve comparire in ogni riga in cui "banane"
compare; idem dicasi per la colonna 4 che si riferisce alla 3, e
questo per ogni "frutto" che compare)
oppure:
in colonna 3 il n. di volte che compare "banane" in colonna 1 ma solo
se in colonna 2 c'e' "mele", in colonna 4 il n. di volte che "mele" compare
in colonna 2 ma solo se c'e' "banane" in colonna 1 e questo per ogni
corrispondenza tra altri frutti (es. se c'e' fichi angurie).
Oppure ??