Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

di il
14 risposte

Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

Salve,

ho una tabella  “volontari” con ID (contatore) e Cognome, in relazione ad una altra tabella “rapportini”, dove diversi campi (op1,op2,op3, ecc) vengono inseriti dalla stessa tabella volontari. Nella query non riesco a conteggiare i servizi per ogni volontario inserito in “rapportini” (anche se in campi diversi).

Spero di essere stato chiaro, in caso contrario scusatemi!!!!!!!

14 Risposte

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Cosa rappresentano op1, op2, op3? Che dati devono contenere?

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    29/08/2023 - Umberto ha scritto:


    ho una tabella  “volontari” con ID (contatore) e Cognome, in relazione ad una altra tabella “rapportini”, dove diversi campi (op1,op2,op3, ecc) vengono inseriti dalla stessa tabella volontari.

    Abituati a nominare i campi ID in maniera esplicita. Per tanto io chiamerei il campo contatore IDVolontario.

    Dalla descrizione sembra che Rapportini sia figlia di Volontari. Esponi tutti i campi di Rapportini.

    La frase “diversi campi (op1,op2,op3,ecc) vengono inseriti dalla stessa tabella Volontari” non ha senso.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    29/08/2023 - Umberto ha scritto:


    Salve,

    ho una tabella  “volontari” con ID (contatore) e Cognome, in relazione ad una altra tabella “rapportini”, dove diversi campi (op1,op2,op3, ecc) vengono inseriti dalla stessa tabella volontari. Nella query non riesco a conteggiare i servizi per ogni volontario inserito in “rapportini” (anche se in campi diversi).

    Spero di essere stato chiaro, in caso contrario scusatemi!!!!!!!

    Cioè, nel caso di n volontari hai come campi "op1, op2, …, opN? Sbagli tutto!

    Devi inserire la tabella servizi e come righe gli operatori che attingi dalla tabella volontari (e/o disponibilità)

    Una parentesi: Il volontariato implica la creazione e conservazione dei volontari, loro disponibilità e giorni/ore di volontariato, requisiti e attestati in vigore con loro scadenze.

    Chiusa parentesi.

    Poi con una query dal… al… fai il conteggio degli operatori.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Avete Ragione, e chiedo scusa se non sono stato chiaro. 

    Mi spiego meglio.

    Di solito uso excel, ma mi sto cimentando da poco con Access, quindi sono a digiuno.

    Sto realizzando un programmino (db), che gestisce i servizi di intervento di una associazione di volontariato di protezione civile. Nei servizi, abbiamo diverso operatori (per ogni servizio) che vanno da un minimo di due, fino a 10 operatori.

    Ho creato una tabella “Veicoli”, una tabella “Volontari”, ed una tabella “Servizi”, tutte collegate con i campi ID (contatori e/o Targa). Ho creato la maschera che inserisce i dati, mediante Combobox collegate con i relativi ID, e tutto funziona.

    Il mio problema è che se creo una query, che conta i servizi di ogni operatore, non riesco a collegarli tutti. A volte l'operatore Tizio puo trovarsi nella posizione op1 o op2 o opn.

    Se collego “solo” op1 (o altro, ma solo uno) me li conta, ma gli altri no………sicuramente tutto dipende dalla mia inesperienza, e non so quale procedura devo seguire.

    Potete aiutarmi?

    (spero di avervi chiarito qualche dubbio, in caso contrario, perdonatemi e ……. abbiate pazienza!!!)

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Mi pare che si fosse già discusso in altro tuo thread la questione. Il suggerimento era stato di normalizzare il db prima di scrivere query ma non lo hai fatto e i problemi restano

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    31/08/2023 - oregon ha scritto:


    Mi pare che si fosse già discusso in altro tuo thread la questione. Il suggerimento era stato di normalizzare il db prima di scrivere query ma non lo hai fatto e i problemi restano

    Chiedo scusa se non ho visto.

    cosa significa normalizzare? Come si procede?

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Naturalmente è un argomento un po' impegnativo per un post. Comincia con

    https://it.m.wikipedia.org/wiki/Normalizzazione_(informatica)

    e poi cerca altre risorse su Internet

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    31/08/2023 - oregon ha scritto:


    Naturalmente è un argomento un po' impegnativo per un post. Comincia con

    https://it.m.wikipedia.org/wiki/Normalizzazione_(informatica)

    e poi cerca altre risorse su Internet

    Capisco.

    Grazie comunque, lo farò.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    31/08/2023 - Umberto ha scritto:


    Il mio problema è che se creo una query, che conta i servizi di ogni operatore, non riesco a collegarli tutti. A volte l'operatore Tizio puo trovarsi nella posizione op1 o op2 o opn

    Infatti io ti ho fatto una domada specifica: se hai n operatori non puoi creare una tabella con n+m campi dove n sono i volontari e m sono id, data e descrizione.

    Per farti capire la struttura, immagina che i volontari siano degli articoli di magazzino.

    La missione o il servizio siano le fatture di vendita.

    Se vuoi sapere quante fatture contengono l'articolo “sbianca e smacchia” fai una query per fatture dove è presente l'articolo “sbianca e smacchia”.

    Allo stesso modo, la tabella fatture collegata 1 a molti con la tabella righefattura sarà per te la tabella servizi collegata 1 a molti con la tabella righeservizi

    Servizi (la testa della nota di servizio) deve avere:

    Idservizio (pk); data; descrizioneservizio; inizio; fine; idvettura; idcommissionario (cliente in caso di fattura); bla… bla…

    Righeservizi (il corpo della nota di servizio) deve avere:

    Idrigaservizio (pk); idservizio (fk) uguale sempre a idservizio (pk) della tabella madre (una costante); id operatore (fk) preso dalla tabella operatori (o volontari se preferisci); bla.. bla… bla…

    Poi con le query ti puoi sbizzarrire:

    Selezione per servizio, per commissionario, per festivi/feriali, per…. Vabbè la fantasia non ti manca!

    Intanto verifica se le tabelle rispettano questa logica, poi ci risentiamo.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    29/08/2023 - Umberto ha scritto:


    Salve,

    ho una tabella  “volontari” con ID (contatore) e Cognome, in relazione ad una altra tabella “rapportini”, dove diversi campi (op1,op2,op3, ecc) vengono inseriti dalla stessa tabella volontari. Nella query non riesco a conteggiare i servizi per ogni volontario inserito in “rapportini” (anche se in campi diversi).

    Spero di essere stato chiaro, in caso contrario scusatemi!!!!!!!

    Sei stato chiaro, ti basta una semplice query

    Supponiamo dentro il primo record RAPPORTINI ci sia op1=PEPPE,  op2=GIGI,  op3=TONI

    Supponiamo dentro il secondo record RAPPORTINI ci sia op1=TONI,  op2=MARIO,  op3 = ‘ ’

    Supponiamo dentro il terzorecord RAPPORTINI ci sia op1 = ‘ ’,  op2=PEPPE,  op3=PINUCCIA

    Se desideri sapere quanti rapportini hai che abbiano almeno TONI come operatore (in un campo qualsiasi op1, op2, op3) ti basta una query dove metti in OR i vari criteri, una roba del tipo:

    nom_op="TONI"

    “select count(*) as num_rap from RAPPORTINI where op1='” & nom_op & "' or op2='” & nom_op & "' or op3='” & nom_op & “' ”

    Deve restituirti num_rap=2 (se hai tre rapportini come indicato sopra)

    (ocio che la stringa ricercata, il nom_op, NON deve contenere un apice singolo o doppio, altrimenti va cambiata la query)

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    La strada della query con le OR per ogni campo ovviamente funziona ma è lontanissima da una corretta itilizzaziine di un DB e potrebbe portare a risultati sballati in seguito all'inserimento errato di dati ripetuti.

    Il DB deve essere normalizzato, le tabelle non devono contenere campi di quel tipo con informazioni ripetute e difficilmente controllabili. Le relazioni tra le varie tabelle devono essere studiate in maniera corretta e solo alla fine si possono scrivere query efficienti che possano restituire risultati affidabili. 

    Poi ognuno fa come vuole.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Uhm… speriamo che non ci siano eventi che prevedano 40 operatori tipo un terremoto o una alluvione.

    Male che vada c'è un 3d che spiega come aggiungere campi alla tabella ;)

    Credo che questa tabella sia stata creata a mo di foglio excell. Si foglio, proprio per far capire che, anche se strutturato in forma tabellare, non si può parlare di tabella.

    Ma non vorrei che qualcuno pensi che credo che tutti gli “sviluppatori” access e/o access stesso non siano all'altezza di professionalità, ma essendo alla portata (come installazione) di tutti, si trovano 3d come questo.

    Un consiglio: procedi per gradi partendo dal progetto.

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    02/09/2023 - sihsandrea ha scritto:


    Uhm… speriamo che non ci siano eventi che prevedano 40 operatori tipo un terremoto o una alluvione.

    Male che vada c'è un 3d che spiega come aggiungere campi alla tabella ;)

    Credo che questa tabella sia stata creata a mo di foglio excell. Si foglio, proprio per far capire che, anche se strutturato in forma tabellare, non si può parlare di tabella.

    Ma non vorrei che qualcuno pensi che credo che tutti gli “sviluppatori” access e/o access stesso non siano all'altezza di professionalità, ma essendo alla portata (come installazione) di tutti, si trovano 3d come questo.

    Un consiglio: procedi per gradi partendo dal progetto.

    E perche' mai di singolo un foglio excel non potresti parlare di ‘tabella’ di un db?

    L'analogia e' quasi perfetta, indici a parte ma anche su un foglio excel e' possibile eseguire ricerche filtraggi ed ordinamenti 

  • Re: Conteggiare in una query, campi diversi (op1,op2,op3..) in unica tab

    Anche in questo thread è partito il flame. 

    Ho disattivato i posts interessati.

    X @amorisik: @Oregon è già il secondo utente con cui hai un battibecco in questo forum…. 

    X @umberto: mi spiace per la chiusura di questo thread ma è necessaria. Se hai dei problemi specifici sulla query apri una nuova discussione.

Devi accedere o registrarti per scrivere nel forum
14 risposte