Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Solo un indirizzo per famiglia

    Buongiorno

    sto avendo un problema con una query molto elementare .

    Ho una tabella di utenti

    ID | NAME | ADDRESS


    Ora, ho molti utenti che hanno lo stesso indirizzo (perché facenti parte dello stesso nucleo familiare).

    Io devo tirare fuori una sola volta ogni indirizzo, associato ad uno qualunque degli utenti che hanno quell'indirizzo (devo inviare una lettera e non ha importanza il nominativo... ma uno deve esserci).
    Non devo selezionare solo gli indirizzi: la selezione è sugli utenti, ma non ci devono essere ripetizioni nell'indirizzo.

    Aggiungo che non ci sono ripetizioni per città diverse, perché la città è una sola.
    Le ripetizioni sono solo riguardanti il nucleo familiare.


    Mi date un suggerimento?

  2. #2
    Puoi raggruppare usando GROUP BY nella query.
    Una roba tipo:
    codice:
    SELECT Address FROM Utenti GROUP BY Address
    Chi non cerca trova.

  3. #3

    E' più difficile... :(

    Fino a quello ci ero riuscito.

    La questione principale è riuscire sì a distinguere gli indirizzi, ma devo tirare fuori un record che, oltre all'indirizzo, abbia associato anche un nome.

    Non importa quale utente viene scelto per ogni indirizzo, ma è necessario che quest'ultimo abbia un nominativo associato.

    Se ho

    Marco | Via mameli
    Giulio | Via bi(ri)kini
    Alba | Via bi(ri)kini
    Giulia | Via salenti
    Mendoza | Via mameli

    Devo avere qualcosa come

    Marco | Via mameli
    Alba | Via bi(ri)kini
    Giulia | Via salenti

    o come

    Alba | Via bi(ri)kini
    Giulia | Via salenti
    Mendoza | Via mameli


    L'importante è che ogni indirizzo sia ripetuto una sola volta...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ti ha già risposto tas.

    SELECT name, Address FROM Utenti GROUP BY Address

  5. #5
    Originariamente inviato da nicola75ss
    Ti ha già risposto tas.

    SELECT name, Address FROM Utenti GROUP BY Address
    Con solo Address nella group by non può funzionare; è scorretto.
    Ci devono essere tutti campi che non fanno parte di funzioni di aggregazione.

    Quindi per esempio, se nella select metto anche il nome dovrà essere
    codice:
    SELECT name, Address FROM Utenti GROUP BY Address, Name
    Di conseguenza mi tirerà fuori anche una distinzione per Nome e non mi scarterà alcun dato.

    Così è come tirare fuori tutti gli indirizzi, ma anche tutti i nomi.

    Una parte dei nomi invece dovrebbero essere scartati, se mi son spiegato....

    Vi torna?

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    La query di nicola andava bene
    Per lo standard sql è scorretto, ma mysql lo accetta e ti dà il risultato che serve a te

  7. #7
    Io sono su Access......

    E solitamente ci tengo a restare sullo standard, per mantenere la portabilità.

    Come posso fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da pictor
    Io sono su Access......

    E solitamente ci tengo a restare sullo standard, per mantenere la portabilità.

    Come posso fare?
    Anche se fa piuttosto "schifo", perche' una max su un campo testo non si puo' vedere, prova cosi'

    SELECT NOMEVIA, MAX(NOMEUTENTE)
    FROM TABELLA
    GROUP BY NOMEVIA;
    Pero' e' standard

  9. #9
    Grazie mille!
    Non sarà bella ma almeno è portabile!

    Semplice e perfetta!

  10. #10
    Ciao,

    come da regolamento è obbligatorio specificare nel titolo la piattaforma utilizzata per il database, che da quanto leggo dovrebbe essere access.

    Per questa volta correggo io, ma più attenzione per i prossimi thread gentilmente. Anzi, se magari dai una bella (ri)lettura al regolamento faresti una cosa buona.

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.