Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59

    [SQL] non accetta attributo distinct, perché?

    Ciao a tutti!!!

    Scrivo perché ho un problema con questa query:

    SELECT Year(data) AS anno, DISTINCT COUNT(pazienteID) AS nr_pz, COUNT(visitaID) AS nr_visite, SUM(kilometri) AS nr_km FROM visite GROUP BY Year(data) ORDER BY Year(data)

    Fa riferimento a una tabella molto semplice composta da un campo primario visitaID, un campo data, un campo kilometri e un campo pazienteID.

    Cercando di processarla così com'è, mi genera errore.

    Se elimino "DISTINCT" mi dà in output i valori giusti per nr_visite e nr_km ma nr_pz è del tutto identico a nr_visite!

    Non riesco a venirne a capo.

    Qualcuno sa aiutarmi?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    la porola chiave distinct va solo dopo il select e prima dei campi del select..

  3. #3
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59
    ho provato! Ho messo DISTINCT subito dopo SELECT ma non cambia assolutamente niente...!

    Non riesco a venirne a capo. E' illogico

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    la parola chiave distinct elimina i doppioni nei record restituiti dalla select.. domandati.. è quello che voglio fare io?

  5. #5
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59
    Il mio obiettivo è banale. Si tratta di ottenere una tabella con i dati relativi ad ogni anno (numero tot di pazienti, numero tot di visite e numero tot di km).

    Ho impostato la query nel modo che a me sembra corretto:

    SELECT Year(data), COUNT(pazienteID), COUNT(visitaID), SUM(kilometri)
    FROM visite
    GROUP BY Year(data)

    la tabella che mi restituisce è in parte corretta: ci sono gli anni, il numero di viste per anno e la somma dei kilometri. Tutto corretto.

    Il problema è il numero dei pazienti. Anziché contarmi i singoli pazienti, conta il numero totale di campi pazienteID (che ovviamente corrisponde al numero delle visite).

    Inserendo DISTINCT pensavo che mi avrebbe contato il campo pazienteID una sola volta... invece genera errore.

    Come posso fare?

    Grazie!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    8
    Ciao
    fai così

    COUNT(distinct pazienteID) AS nr_pz

    Ciao

  7. #7
    Utente di HTML.it L'avatar di diddl
    Registrato dal
    Apr 2001
    Messaggi
    59
    Originariamente inviato da Lucio84
    Ciao
    fai così

    COUNT(distinct pazienteID) AS nr_pz

    Ciao
    Grazie!!!!! Adesso tutti i conti tornano!!!

    Perfetto!

    Ciao!

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.