Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332

    Funzione di aggregazione COUNT con opzione DISTINCT... un aiuto!!

    Salve ragazzi,

    avrei un problema con la funzione di aggregazione COUNY associata all'opzione di eliminazione di righe doppie DISTINCT.
    Lo standard SQL prevede questa sintassi: SELECT COUNT( DISTINCT Value Expressione).
    Provandola in ACCESS 2000, risulta mancantre un operatore.
    Esempio pratico per farvi capire meglio:
    Si voglia conteggiare il numero delle città in cui risiedono i clienti.
    In questo caso si dovrebbero eliminare le righe 'doppione', supponendo che la tabella si chiami Clienti ed il campo Città, la sintassi dovrebbe essere

    SELECT COUNT(DISTINCT [Clienti].[Città]) AS NumeroCittà FROM Clienti;

    In questo modo il sistema eliminerebbe prima i doppioni, e poi conteggierebbe le righe rimaste.
    ACCESS non accetta questa sintassi, dando come messaggio di errore: Operatore mancante evidenziando il campo città.
    Sapreste darmi una mano a capire quale operatore manca... ho dimenticato di aggiungere qualcosa?
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Per tutti quelli che stanno provando...
    ecco la soluzione:

    Visto che ACCESS 2000 non supporta COUNT (DISTINCT Value_Expression),
    la soluzione sarebbe quella di definire una subquery nella clausola FORM in cui definire l'opzione DISTINCT, quindi utilizzare il nome del campo in questione come valore nella funzione di aggregazione COUNT.
    Mi spiego con un esempio pratico:

    SELECT Count(CDistinct.Città) AS Numero_Città
    FROM
    SELECT Count(IDistinct.Città) AS Numero_Città

    Il Result Set dovrebbe restituire il numero delle città eliminando le righe 'doppione'.
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    SELECT Count(CDistinct.Città) AS Numero_Città
    FROM
    SELECT Count(IDistinct.Città) AS Numero_Città


    Scusate, un errore di sintassi...

    SELECT Count(IDistinct.Città) AS Numero_Città
    FROM
    (SELECT DISTINCT Città FROM Clienti) AS IDistinct;
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

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.