Discussione:
Numero progressivo di riga in una query
(troppo vecchio per rispondere)
sbtk
2009-09-20 07:39:13 UTC
Permalink
Buongiorno.
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il progressivo di riga.
Mi rivolgo a voi per evere indicazioni.
Grazie, saluti.
giorgio rancati
2009-09-20 09:00:09 UTC
Permalink
Post by sbtk
Buongiorno.
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il progressivo di riga.
Mi rivolgo a voi per evere indicazioni.
Ciao sbtk,
purtroppo il motore Jet non ha una funzione nativa per contare le righe,
quindi le soluzioni non saranno molto performanti su tabelle con molte
righe.
Di seguito due esempi che puoi provare nel database di esempio NorthWind
versione 2002/2003 creando una nuova query e selezionando la tabella Clienti

1) con funzione DCount
Contatore: DCount("IdCliente";"Clienti";"IdCliente<='" & [IdCliente] & "'")

2) con subquery
Contatore: (SELECT COUNT(*) FROM Clienti AS C WHERE C.IdCliente<= "'" &
Clienti.IdCliente & "'")

se il tuo campo di riferimento è numerico togli gli apici

es..
Contatore: DCount("Id";"Tabella1";"Id<=" & [Id])

Ciao
--
Giorgio Rancati
[Office Access MVP]
sbtk
2009-09-20 18:04:43 UTC
Permalink
Grazie mille. Risolto !
Saluti.
Post by giorgio rancati
Post by sbtk
Buongiorno.
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il progressivo di riga.
Mi rivolgo a voi per evere indicazioni.
Ciao sbtk,
purtroppo il motore Jet non ha una funzione nativa per contare le righe,
quindi le soluzioni non saranno molto performanti su tabelle con molte
righe.
Di seguito due esempi che puoi provare nel database di esempio NorthWind
versione 2002/2003 creando una nuova query e selezionando la tabella Clienti
1) con funzione DCount
Contatore: DCount("IdCliente";"Clienti";"IdCliente<='" & [IdCliente] & "'")
2) con subquery
Contatore: (SELECT COUNT(*) FROM Clienti AS C WHERE C.IdCliente<= "'" &
Clienti.IdCliente & "'")
se il tuo campo di riferimento è numerico togli gli apici
es..
Contatore: DCount("Id";"Tabella1";"Id<=" & [Id])
Ciao
--
Giorgio Rancati
[Office Access MVP]
Karl Donaubauer
2009-09-20 09:45:46 UTC
Permalink
Post by sbtk
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il progressivo
di riga. Mi rivolgo a voi per evere indicazioni.
www.donkarl.com/it?FAQ3.11
--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it
sbtk
2009-09-20 15:00:29 UTC
Permalink
Vi ringrazio molto.

Ho fatto un passo avanti inserendo nella mia query il comando seguente:



<<NumIncr: (Select Count (*) FROM [TblProva] as Temp WHERE
[Temp].[N_PosTens] < [TblProva].[N_PosTens])+1>>



Il numero incrementale mi viene però visualizzato in ordine inverso a quello
che desidero ottenere.

Cercherò di spiegarmi meglio:

il campo N_PosTens della tabella TblProva contiene un valore numerico; il
numero incrementale, ottenuto per come sopra indicato, attribuisce il valore
più basso al corrispondente valore più basso del campo N_PosTens.



Mi occorre invece ottenere il numero incrementale "crescente" ma sul valore
del campo N_PosTen "decrescente". In pratica i due valori dovranno essere
inversamente proporzionali: al numero incrementale più basso deve
corrispondere il valore più alto del campo N_PosTens, e così via.

Ho provato ad attivare gli ordinamenti sulla query ma non ottengo il
risultato.



Faccio un esempio, dove le prime due colonne sono il risultato ottenuto,
mentre nella terza riporto quello che vorrei ottenere:



NumIncr
N_PosTens
cosa vorrei ottenere

10
718
1

9
658
2

8
490
3

7
318
4

6
300
5

5
166
6

4
155
7

3
143
8

2
138
9

1
114
10




Spero di aver chiaramente esposto l'argomento.

Vi ringrazio ancora per la disponibilità.



Cordiali saluti.
Post by Karl Donaubauer
Post by sbtk
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il progressivo
di riga. Mi rivolgo a voi per evere indicazioni.
www.donkarl.com/it?FAQ3.11
--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it
Karl Donaubauer
2009-09-20 16:52:11 UTC
Permalink
Post by sbtk
Post by Karl Donaubauer
Post by sbtk
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il
progressivo di riga. Mi rivolgo a voi per evere indicazioni.
www.donkarl.com/it?FAQ3.11
...
Ho fatto un passo avanti inserendo nella mia query il comando
<<NumIncr: (Select Count (*) FROM [TblProva] as Temp WHERE
[Temp].[N_PosTens] < [TblProva].[N_PosTens])+1>>
Il numero incrementale mi viene però visualizzato in ordine inverso
a quello che desidero ottenere.
...
Basta invertire l'operatore "<" a ">" :

NumIncr: (Select Count (*) FROM [TblProva] as Temp WHERE
[Temp].[N_PosTens] > [TblProva].[N_PosTens])+1
--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it
sbtk
2009-09-20 17:56:34 UTC
Permalink
Perfetto. Funziona.
Penso che ci "sentiremo" ancora ...
Mi sono approcciato all'ACCESS e sto mettendo su alcuni lavoretti.

Grazie ancora.
Post by sbtk
Post by sbtk
Post by Karl Donaubauer
Post by sbtk
Ho una query che legge una tabella con i campi 1, 2, 3 e 4.
Vorrei inserire nella query un campo che mmi calcola il
progressivo di riga. Mi rivolgo a voi per evere indicazioni.
www.donkarl.com/it?FAQ3.11
...
Ho fatto un passo avanti inserendo nella mia query il comando
<<NumIncr: (Select Count (*) FROM [TblProva] as Temp WHERE
[Temp].[N_PosTens] < [TblProva].[N_PosTens])+1>>
Il numero incrementale mi viene però visualizzato in ordine inverso
a quello che desidero ottenere.
...
NumIncr: (Select Count (*) FROM [TblProva] as Temp WHERE
[Temp].[N_PosTens] > [TblProva].[N_PosTens])+1
--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it
Loading...