Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63

    contare quante occorrenze si ripetono in un campo

    Premetto che parlo di un db di anagrafica dove ho un campo DataRegistrazione che è =Data()
    ho la necessità di calcolare quante tessere sono state fatte ogni anno, e quindi ho fatto una query che funziona e ve la descrivo per completarla per un'altra ricerca simultanea:

    1°Campo.. Anno: Primo(Year([DataRegistrazione]))
    Formula: Espressione
    Ordinamento: Crescente
    Mostra

    2°Campo.. TotaleTesserati: Conteggio(Year([DataRegistrazione]))
    Formula: Espressione
    Mostra
    Criteri: >0

    3°Campo.. Year([DataRegistrazione])
    Formula: Raggruppamento
    Nascondi


    mi serve di sapere come posso fare a completare una ricerca simultanea... e vi spiego la necessità:
    ho aggiunto un campo di nome Code dal quale si apre una tendina dove si possono scegliere 4 diverse lettere "L" "F" "P" "V" che contraddistinguono il tipo di associato... come debbo fare per farmi dare come risultato della query oltre alle colonne 'Anno' e 'TotaleTesserati' (per anno) anche le colonne delle 4 lettere che ho detto poc'anzi con le rispettive quantità per ogni anno evidenziato?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    e la query che hai fatto dove sta?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    ho messo in evidenza la query per avere restituiti anni e quantità di tesserati per anno... non so per impostare il resto! Non ne so poi tanto di access e quindi sto chiedendo consiglio per questo. La query che ho fatto contiene solo questi dati, dimmi se debbo citare altro lo scrivo

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    come dicevo è meglio se posti la query che hai scritto

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    Ok forse l'ho trovata... avevo scritto quello che trovavo nella struttura... ecco

    SELECT First(Year([DataRegistrazione])) AS Anno, Count(Year([DataRegistrazione])) AS TotaleTesserati
    FROM Impiegati
    GROUP BY Year([DataRegistrazione])
    HAVING (((Count(Year([DataRegistrazione])))>0))
    ORDER BY First(Year([DataRegistrazione])) DESC;

    considera che la tabella 'impiegati' è di un vecchio db (in realtà contiene i tesserati), non ho cambiato il nome perché altrimenti non mi eseguiva alcune altre cose collegate. Scusa ma non sono tanto smart con access e quindi non avevo capito bene dove andarla a prendere

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ti consiglio di scrivere sempre in nometabella prima del nomefield.

    codice:
    SELECT 
    Year([impiegati.DataRegistrazione]) AS Anno, 
    impiegati.Code,
    Count(*) AS TotaleTesserati
    FROM Impiegati
    GROUP BY 
    Year([impiegati.DataRegistrazione]),
    impiegati.Code 
    HAVING Count(*)>0
    ORDER BY Year([impiegati.DataRegistrazione]) DESC;

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    Intanto grazie perché mi hai fatto fare un passo in avanti ma così ottengo tre colonne di cui la prima Anno la seconda Code e la terza Totale Tesserati e quindi ottengo degli anni replicati per la quantità dei diversi Code presenti per Anno! Io invece vorrei avere solo una riga per Anno e quindi il relativo TotaleTesserati e poi 4 colonne L F P V con il relativo quantitativo per Anno (questo perché mi serve anche il TotaleTesserati per Anno)

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    vorrei aggiungere anche perché in questo modo si può fare un paragone più diretto e meno confondibile a colpo d'occhio tra un anno e l'altro (vista la presenza univoca di ogni anno che ci sarebbe in questo caso)
    Ultima modifica di Eurialo; 05-06-2014 a 00:37

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da Eurialo Visualizza il messaggio
    Intanto grazie perché mi hai fatto fare un passo in avanti ma così ottengo tre colonne di cui la prima Anno la seconda Code e la terza Totale Tesserati e quindi ottengo degli anni replicati per la quantità dei diversi Code presenti per Anno! Io invece vorrei avere solo una riga per Anno e quindi il relativo TotaleTesserati e poi 4 colonne L F P V con il relativo quantitativo per Anno (questo perché mi serve anche il TotaleTesserati per Anno)
    codice:
    SELECT 
    Year([impiegati.DataRegistrazione]) AS Anno, 
     SUM(case when (impiegati.Code='L') then 1 else 0 end) L,
     SUM(case when (impiegati.Code='F') then 1 else 0 end) F,
     SUM(case when (impiegati.Code='P') then 1 else 0 end) P,
     SUM(case when (impiegati.Code='V') then 1 else 0 end) V
    FROM Impiegati
    GROUP BY 
    Year([impiegati.DataRegistrazione]),
    ORDER BY Year([impiegati.DataRegistrazione]) DESC;

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    63
    ho inserito questo codice e ricevo:
    'Errore di sintassi (operatore mancante) nell'espressione della query 'SUM(case when (impiegati.Code='L') then 1 else 0 end) L'.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.