confronto tra due campi in una query

Anonimo
2017-11-24T08:39:08+00:00

Salve a tutti, sono un principiante che si sta appassionando sempre di più ad access, purtroppo ho un vecchio computer e per motivi di poca ram, utilizzo ancora access 2000 che gira molto bene.

Il mio problema, è, che non riesco a fare un filtro di confronto fra due campi:

  • inserisco nel campo (max partecipanti) un numero, ad esempio 35 come da foto,
  • appena il valore del campo (ConteggioDicognome) raggiunge il numero 35, il filtro mostri solo la riga con il valore 35

![](https://learn-attachment.microsoft.com/api/attachments/b39ab5f3-ba8f-4ed1-bd99-01c70bc6596e?platform=QnA)

Un grazie anticipatamente

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
2017-11-27T10:01:52+00:00

ciao Gabry_M,

cambia il tipo di campo maxPartecipanti da testo a numerico nella tabella titolo_evento e testa questo predicato sql:

SELECT

         T.Titolo_evento,

         T.ECM,

         T.Ediz_n,

         T.del,

         T.maxpartecipanti, i.contaiscritti

FROM

         titolo_evento AS T

INNER JOIN

       (select count(*) as contaIscritti, iscritti.id from iscritti  group by iscritti.id)  AS I ON i.id=t.id

WHERE

       i.contaiscritti<t.maxpartecipanti;

Ciao, Sandro.

La risposta è stata utile?

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

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-11-27T08:41:35+00:00

    Ho provato in una tabella semplice e la cosa funziona, ma nel mio caso da errore.

    Se vuoi, puoi scaricare il file db.mdb da QUI per testare Tu stesso perchè da l'errore.

    I campi sono max partecipanti e ID, ho messo diverso nel criterio per escludere la riga con il valore uguale.

    A presto,...

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-11-25T16:23:36+00:00

    Ciao Gabriele,

    quindi è proprio un filtro.

    La risposta è nella domanda...

    SELECT....

    HAVING conteggiodicognome<maxpartecipanti

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-11-25T05:53:27+00:00

    grazie per aver preso in considerazione la mia domanda,

    spiego meglio cosa desidero ottenere:

    la query che ho inserito in figura, è il risultato di una relazione tra due tabelle.

    il programma che ho realizzato è diviso in due modi:  

    una tabella che utilizza l'amministratore degli eventi con i campi: titolo evento, data ed un numero massimo di partecipanti per aderire all'evento;

    l'altra tabella invece è dedicata ai partecipanti che si iscrivono all'evento con i campi: cognome, nome ecc. ecc..


    ogni evento, ha una sottoriga degli iscritti all'evento


    fatta la query di raggruppamento tra le due tabelle, nel campo cognome, ho selezionato la voce conteggio, così ho creato un contatore degli iscritti per ogni evento.


    A questo punto, ho realizzato una nuova query semplice dalla query di raggruppamento con i campi: titolo evento, data, numero max partecipanti, ed il contatore degli iscritti (dal conteggio cognome).


    Così facendo, il mio scopo è quello di fermare le iscrizioni al raggiungimento del numero max di partecipanti, nascondendo la riga del risutato della query, quando il valore del campo n.max_partecipanti è uguale a quello del conteggio cognome.

    cioè se nella query finale il valore max partecipanti è ad esempio 35, appena il conteggio cognome è anche a 35, la riga sparisce creando uno stop alle iscrizioni all'evento.

    Spero sia stato chiaro, a presto

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-11-24T18:12:58+00:00

    Parli di filtro ma mi sembra che tu descriva un altro comportamento.

    Poniamo i due casi.

    Tabella di origine (date a parte):

    ID  Max    Partecipanti

    1    35        32

    2    35        35

    3    35        45

    4    35        22

    Comportamento del filtro Partecipanti <= Max:

    ID  Max    Partecipanti

    1    35        32

    2    35        35

    4    35        22

    Comportamento del filtro Partecipanti = Max:

    ID  Max    Partecipanti

    2    35        35

    Comportamento che descrivi:

    ID  Max    Partecipanti

    1    35        32

    2    35        35

    3    35        35

    4    35        22

    Quale dei due comportamenti vuoi ottenere?

    La risposta è stata utile?

    0 commenti Nessun commento