Newsgroup: it.comp.appl.access
Titolo: numerazione progressiva a gruppi

Buonasera a tutto il NG!
Ho un problema nel poter creare un campo che identifici con un numero
progressivo un gruppo di valori , ovvero :
pippo    13
pippo    34
pippo    22
pluto    31
pluto    11
paperino    19
paperino    22
dovrei realizzare :
pippo    13        1
pippo    34        1
pippo    22        1
pluto    31         2
pluto    11         2
paperino    19    3
paperino    22    3
cioe ad ogni cambiamento del primo campo il numero progressivo deve
aumentare di 1.
Mi potete dare una mano a risolvere il problema per favore?
Con i ringraziamenti anticipati!
Paolo

 ha scritto nel messaggio
news:vTfcc.24651$jY1....@tornado.fastwebnet.it...

Ci potrebbero essere varie soluzioni, a seconda di come vuoi operare.
Se vuoi automatizzare il tutto per ripetere l'operazione più volte devi
scrivere del codice: devi aprire un recordset ordinato per il valore su cui
raggruppi (lo chiamo CAMPO) e quindi lo cicli fino alla fine. Per ogni
record, testi il valore del CAMPO e se è uguale al precedente (var
d'appoggio) scrivi su quel record il valore corrente di un contatore,
altrimenti incrementi di uno e setti la var d'appoggio col nuovo valore
corrente di CAMPO.
Fatta invece al volo al volo, crea una tabella con un campo CAMPO e un
contatore. Poi fai una query di raggruppamento sulla tabella dei dati e
accodi il risultato sulla nuova tabella. Il contatore ti darà i progressivi
che poi puoi usare o con un join o aggiornando definitivamente il prog nella
tabella dati
Antonio

 ha scritto nel messaggio
news:kVgcc.112199$FJ6.4...@twister1.libero.it...

Ciao Antonio, risposta super veloce di cui ti ringrazio! penso che adottero
la seconda soluzione anche se mi piacerebbe molto provare con la prima che
è, penso, piu "tecnica". Ti sarei grato se me la potessi illustrare, dato
che sono riuscito a fare un campo contatore via codice ma senza gruppi
definiti
Con mille e un ringraziamento !
Paolo

 ha scritto nel messaggio
news:M9hcc.24829$jY1....@tornado.fastwebnet.it...

Via codice non devi usare un campo contatore, ma una variabile contatore.
set rst = currentdb.openrecordset("Tabella Ordinata")
rst.movefirst
cont = 0
old = ""
do until rst.EOF
app = rst.fields("CAMPO")
rst.edit
if app <> old then
  cont = cont + 1
  old = app
end if
rst.fields("prog") = cont
rst.update
rst.movenext
loop
+ o meno
Antonio

 ha scritto nel messaggio
news:vTfcc.24651$jY1....@tornado.fastwebnet.it...

Se vuoi farlo con una query
-----------------------
SELECT Tb1.Nome,
               Numero,
              COUNT(Tb2.Nome) AS Progressivo
FROM Tb1 INNER JOIN
             [SELECT DISTINCT NOME From Tb1]. AS Tb2
            ON Tb1.Nome>=Tb2.Nome
GROUP BY Tb1.Nome,Tb1.Numero
ORDER BY Tb1.Nome,Tb1.Numero
--------------------------
Ciao Giorgio


Beh Antonio che dire ..... sei sempre prezioso....la seconda soluzione gia
provata funziiona perfettamente ( capisco che sarei dovuto arrivarci per
logica) quella che hai illustrato adesso la provo subito domattina presto e
sono certo che sara una bella soddisfazione!
Ciao e naturalmente buonanotte e.....davvero grazie infinite!
Paolo

 ha scritto nel
messaggio news:c4s8n4$gjh$1...@lacerta.tiscalinet.it...

Ciao Giorgio buongiorno!
Grazie per la risposta che provero ad applicare stamattina, sia te che
Antonio mi avete dato una grossa mano e da parte mia un voluto
ringraziamento.
Spero a buon rendere :)))
Paolo

 ha scritto nel
messaggio news:c4s8n4$gjh$1...@lacerta.tiscalinet.it...

Questa soluzione č spettacolare! E' un esempio di sub-query?


Ciao Ciroteo,
assolutamente no, cerco sempre di evitarle (se possibile) in quanto poco
performanti, la select che vedi dopo l' INNER JOIN si chiama tabella
derivata ed č consigliata anche nei casi in cui non č necessario attingere
da tutti i campi delle tabelle in JOIN
Ciao Giorgio

 ha scritto nel
messaggio news:c4u8b9$714$1...@lacerta.tiscalinet.it...

Ciao a tutti! tutte le soluzioni sono decisamente performanti e validissime
le ho provate con soddisfazione compresa quella di Antonio che mi ha fornito
il relativo codice che ha funzionato senza alcun problema..
Di nuovo un grazie a tutti per la collaborazione esemplare!
Paolo