Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628

    SELECT WHERE campo si ripete 2 volte

    salve a tutti,

    nuovamente disturbo le menti di questo form per proporre un'altra query.

    In un tabella tipo:

    ID | Nome | Telefono

    Vorrei selezionare solo i record nei quali il telefono è ripetuto almeno 2 volte ...quindi

    1 | Pippo | 123456
    2 | Pluto | 456789
    3 | Mario | 123456
    4 | Gino | 123456

    Vorrei selezionare solo 1,3 e 4 ..magari con un unica query, e non con cicli in ASP ...come potrei risolvere ?
    Webplease.it WebAgency
    www.webplease.it

  2. #2

    Re: SELECT WHERE campo si ripete 2 volte

    SELECT * FROM Tabella1
    Where Telefono IN (Select telefono from Tabella1 group by telefono having count(*)>1)

  3. #3
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    Ciao sspintux,

    grazie per la risposta ...ma in questo modo mi seleziona praticamente solo i doppi

    cmq non male come query, mi serviva anche per altre cose
    Webplease.it WebAgency
    www.webplease.it

  4. #4
    Originariamente inviato da legal-x
    Ciao sspintux,

    grazie per la risposta ...ma in questo modo mi seleziona praticamente solo i doppi
    ...allora ci vuole una mente superiore che interpreti quello
    che volevi perchè io non l'ho capito ;

    Originariamente inviato da legal-x
    ......................
    Vorrei selezionare solo i record nei quali il telefono è ripetuto almeno 2 volte...
    ......................
    tra l'altro non capisco neanche cosa intendi quando
    dici che ti seleziona solo i doppi ...ma non è importante.

    Ciao Ciao

  5. #5
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    sspintux, hai ragione mi sono espresso male io ...ricapitoliamo:

    Tabella

    1 | Pippo | 123456
    2 | Pluto | 456789
    3 | Mario | 123456
    4 | Gino | 123456


    Con la tua query, la mia tabella diventa:

    1 | Pippo | 123456
    3 | Mario | 123456
    4 | Gino | 123456

    Quindi prende solo i record dove il campo Tel si ripete ...e mi va bene questa query per selezionare i doppioni...
    ...il risultato che io volevo era:


    1 | Pippo | 123456
    2 | Pluto | 456789

    Ovvero la tua query prendendo però solo un record, più quello che rimane nella query di selezione * ...meglio ancora: Prendere TUTTI i record, e SE il numero di tel si ripete, prenderne solo UNO

    Non so se si possa fare però
    Webplease.it WebAgency
    www.webplease.it

  6. #6
    Originariamente inviato da legal-x
    sspintux, hai ragione mi sono espresso male io ...ricapitoliamo:

    Tabella

    1 | Pippo | 123456
    2 | Pluto | 456789
    3 | Mario | 123456
    4 | Gino | 123456


    Con la tua query, la mia tabella diventa:

    1 | Pippo | 123456
    3 | Mario | 123456
    4 | Gino | 123456

    Quindi prende solo i record dove il campo Tel si ripete ...e mi va bene questa query per selezionare i doppioni...
    ...il risultato che io volevo era:


    1 | Pippo | 123456
    2 | Pluto | 456789

    Ovvero la tua query prendendo però solo un record, più quello che rimane nella query di selezione * ...meglio ancora: Prendere TUTTI i record, e SE il numero di tel si ripete, prenderne solo UNO

    Non so se si possa fare però
    ... dì la verità : hai cambiato idea stanotte in seguito ad un sogno rivelatore

    codice:
    SELECT T.* from T
    INNER JOIN
    (SELECT MIN(ID) as MinID FROM T Group By Telefono) AS  Q1
    ON  T.ID=Q1.MinID
    ... se non è ancora quello che volevi (o se il campo ID non è univoco)
    ci sono sempre i cari, fidati e succulenti recordset

  7. #7
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    allora, il mio campo ID è univoco ...quindi non credo ci siano problemi ...

    Ho modificato la query per il mio scopo:

    SELECT MiaTab.*
    FROM MiaTab INNER JOIN [SELECT MIN(ID) as MinID FROM MiaTab Group By Telefono] AS Q1 ON [MiaTab].[ID]=Q1.MinID;

    L'ho provata al volo in Access e mi da questo errore:

    "Il modulo di gestione di database Microsoft Jet non è in grado di trovare la tabella o la query di input 'SELECT MIN(ID) as MinID FROM MiaTab Group By Telefono'; verificare che esista e che sia stata digitata correttamente"

    La tabella è quella, il campo si chiama così come ho scritto ..quale può essere il problema ? ..

    PS: grazie tante per il tuo aiuto
    Webplease.it WebAgency
    www.webplease.it

  8. #8
    codice:
    SELECT MiaTab.*
    FROM MiaTab 
    INNER JOIN
    
    ( <-- metti le tonde invece delle quadre e prova direttamente in 'Visualizzazione sql' 
      (a me con access 2000 funge)  
      ...volendo potresti anche salvarti questo pezzo come query a parte
       SELECT MIN(ID) as MinID FROM MiaTab Group By Telefono
    ) AS Q1
    ON [MiaTab].[ID]=Q1.MinID;

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.