Numerazione progressiva che si azzera con Access

Anonimo
2020-02-25T10:38:47+00:00

Aiuto!! Non riesco a risolvere questo problema

Sto lavorando con Access e vorrei inserire un contatore che si azzera al cambiamento del mio campo Num. Se il campo Val ha lo stesso valore del precedente il contatore deve essere lo stesso.

Per essere chiaro ho questa tabella

num val

1020 9

1020 10

1020 10

1020 11

1021 8

1021 9

1021 9

E vorrei ottenere questo risultato

Num      val         cont

1020      9            1

1020      10          2

1020      10          2

1020      11          3

1021      8            1

1021      9            2

1021      9            2

Qualcuno mi può aiutare? Si può ottenere con le query di access? Ho provato con vario codice ma non riesco

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2020-02-25T15:18:09+00:00

Ciao StaCla,

[...]

Qualcuno mi può aiutare? Si può ottenere con le query di access? Ho provato con vario codice ma non riesco

[...]

ci provo....

Con access, rowNumber, rank e denseRank tipiche ad esempio di SqlServer e di altri databases piu' complessi, sono un po' piu' compicate da ottenere in quanto non ci sono funzioni specifiche interne ed ottimizzate per ottenerle.

In ogni caso....qualcosa si riesce ad ottenere.

Data la tabella :

ottengo :

con il predicato che segue :

SELECT t.ID, t.num, t.val, (SELECT Count(*)

   FROM

    (SELECT DISTINCT t2.val , t2.num

     FROM tabella1 AS t2) AS t1

     WHERE t1.val<=t.val and t1.num=t.num) AS Rank

FROM tabella1 as T

ORDER BY t.num,t.val;

il contatore per quanto alla definizione è tipico dei loop per quanto  alla definizione della variabile che ne regola e discrimina il funzionamento.

Con i database relazionali determinate personalizzazione come quella che richiedi sono da ottenere principalmente con query e ove non possibile con cursori.

Facci sapere.

Ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-02-25T11:53:11+00:00

    Ciao Nicola, 

    quel codice l’ho già provato ma non fa il caso mio, mi incrementa tutto mentre io ad un certo punto voglio l’azzeramento del contatore. Oltretutto il tempo di processamento sul mio database è molto lungo con quel tipo di codice.

    avete qualche altra idea?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-02-25T11:33:45+00:00

    Ciao Stacla, prova  a dare un'occhiata a questa discussione, penso che faccia al caso tuo.

    https://answers.microsoft.com/it-it/office/forum/office_2010-access/query-per-numerazione-progressiva-in-access/88dc4512-d4f5-41f1-ace9-0fec69b4ce35

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-02-25T11:15:52+00:00

    Il campo num e val sono due campi numerici, io vorrei aggiungere un contatore che si incrementi al cambiare del campo val, ma che riparta da 1 quando cambia il campo num. in aggiunta se il campo val e num hanno lo stesso valore del precedente il contatore non si deve incrementare. Sono stato uN po’ più chiaro?

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-02-25T10:58:31+00:00

    Prima bisogna capire esattamente cosa sono quei campi della tua tabella...

    Num e Val sono campi numerici e Cont? E' la Pk e quindi contatore?

    Inoltre spiegaci cosa vorresti fare esattamente, perchè potrebbe semplicemente essere un errore dovuto alla struttura tabelle ahah!

    La risposta è stata utile?

    0 commenti Nessun commento