Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [VB6] Sql Distinct

  1. #1
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224

    [VB6] Sql Distinct

    Nella seguente Sql ho unito 3 tabelle. Con una distinct ho evitato i doppioni delle Esposizioni.Id. Il punto è che non posso utilizzare l'Order e tutti gli altri campi non posso vederli.

    codice:
    "Select Distinct Esposizioni.Id From EsposizioniDettagli, Opere, Esposizioni Where (EsposizioniDettagli.IdOpera = Opere.Id) And (EsposizioniDettagli.IdEsposizione = Esposizioni.Id)"
    Il problema maggiore non è l'order by, ma vedere tutti i campi.

    Chi saprebbe aiutarmi ? ? ?

  2. #2
    Ke significa vedere tutti i campi??
    Nella select specifichi circa il risultato ke dovrà apparire!
    Nel tuo caso Esposizioni Id.
    ....

  3. #3
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224
    Scusami, probabilmente mi sono spiegato male. In questa sql ho fatto una distinct per non visualizzare i doppioni di Esposizioni.Id.

    Esempio di select normale:

    Esposizioni.Id
    6
    9
    3
    5
    6
    7
    6
    1
    1
    3

    Esempio di select distinct:
    6
    9
    3
    5
    7
    1

    Voglio eliminare i doppioni nella visualizzazione, però, tutti i campi della tabella devono essere visibili e possibilmente utilizzare l'Order By.

    Spero che qualcuno riesca ad aiutarmi...Grazie!!!

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Con questa vedi tutti i campi di Esposizioni, ordinati per ID
    codice:
    "Select Distinct Esposizioni.* From EsposizioniDettagli, Opere, Esposizioni Where (EsposizioniDettagli.IdOpera = Opere.Id) And (EsposizioniDettagli.IdEsposizione = Esposizioni.Id) Order By Esposizioni.Id "
    Se vuoi vedere tutti i campi di tutte le tre tabelle allora
    codice:
    "Select Distinct Esposizioni.*, EsposizioniDettagli.*, Opere.* From EsposizioniDettagli, Opere, Esposizioni Where (EsposizioniDettagli.IdOpera = Opere.Id) And (EsposizioniDettagli.IdEsposizione = Esposizioni.Id) Order By Esposizioni.Id "
    Ciao,
    Ciao, Brainjar

  5. #5
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224
    Ti ringrazio moltissimo per questa perla d'istruzione, ma i doppioni non me li elimina.

    Ora la tabella è così:

    Esposizioni.Id
    6
    5
    6

    dovrebbe visualizzarmela così:

    Esposizioni.Id
    6
    5

    Per il resto va bene, solo l'eliminazione dei doppioni. Grazie mille!!!

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Non ti elimina i doppioni perchè ogni riga, intesa come lista di
    campi risulta essere diversa.
    Cioè :

    Primo Secondo Terzo Quarto Quinto Sesto
    ---------------------------------------
    6 Brainjar 1 Zoff Ciao Pinco <---
    5 Petra 1 Totti Ciao Pallino |---- Sono
    6 Brainull 1 Zoff Ciao Diverso <--- diversi

    quindi le soluzioni sono molteplici.
    Una è quella di inserire solo alcuni campi per ogni tabella,
    in modo che i records siano identici e la distinct faccia il
    suo lavoro. Altre soluzioni dovrei studiarmele un po'.
    Per il momento ti consiglio questo sito su SQL veramente
    utile. http://www.w3schools.com/default.asp
    Ciao,
    Ciao, Brainjar

  7. #7
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224
    No...in inglese no!!! VVoVe:

    Altro quesito, tralasciando il primo. Se io ho un campo chiave...

    ID
    1
    3
    6
    8
    5
    4
    6

    ...e voglio una sql che mi restituisca un valore che mi dica se tutti i volori all'interno del recordset sono uguali o almeno uno è diverso ? ? ?

    Esempio:

    ID
    1
    3
    6
    8
    5
    4
    6

    In questo caso dovrebbe restituirmi false, ovvero che almeno un valore è diverso da un altro all'interno del recordset.


    ID
    1
    1
    1
    1
    1
    1
    1

    In questo caso dovrebbe restituirmi true, ovvero che tutti i valori all'interno del recordset sono uguali.


    Spero di essermi spiegata...Grassieee!!!

  8. #8
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Fai una select distinct sul quel (solo) campo. Se hai un numero di
    record superiore ad 1, vuol dire che ci sono chiavi diverse.

    Ciao,
    Ciao, Brainjar

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.