Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204

    [DELPHI] Select distinct

    Ciao,
    uso i componenti INTERBASE con db Firebird e devo fare una query semplicissima che mi filtri i doppioni all'interno di una tabella.

    esempio:

    SELECT DISTINCT (campo1),campo2,campo3 from Tabella order by campo1

    sembra che il DISTINCT non lo considera.Escono comunque tutti i valori.

    Cosa sbaglio???

    Grazie



  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,314
    Il fatto che tu abbia usato una parentesi mi lascia supporre che i campi abbiano tutti valori diversi, ma che tu voglia "distinguere" solo per il primo.

    La clausola DISTINCT non funziona in questo modo, per quanto mi ricordo io: tutti i campi inclusi nella query vengono considerati.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    Lo pensavo anchio, ma dopo una ricerca sul web ho visto che si usano le ( ) per indicare solo un campo.

    Altrimenti come potrei fare??

  4. #4
    Io non ho ben capito cosa vorresti fare... :master:
    è qualche anno che uso firebird... e mi pare che il distinct agisca su tutti i campi della select, ovvero se hai + record uguali la query te ne da uno solo.
    Magari fai un'esempio di quello che vorresti ottenere con 2 dati di prova...

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    ho una tabella con questi campi

    num fattura importo importo scadenza cod cliente
    1 500 250 25
    1 500 250 25
    2 200 200 30
    3 1000 350 31
    3 1000 350 31
    3 1000 300 31
    4 2000 2000 40
    5 200 200 40

    il risultato della mia query deve essere

    num fattura importo
    1 500
    2 200
    3 1000
    4 2000
    5 200

    ho tralasciato alcuni campi per rendere piu snello l'esempio, in poche parole devo ottenere i numeri di fattura singoli con l'importo.

  6. #6
    allora basta che fai solo "select distinct numero_fattura, importo from tabella "


    ciao

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,314
    Originariamente inviato da FilSWS
    Lo pensavo anchio, ma dopo una ricerca sul web ho visto che si usano le ( ) per indicare solo un campo.
    Fornisci il link, così approfondiamo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    devi usare group by

    SELECT campo1,campo2,campo3 from Tabella group by campo1 order by campo1;

    ciao
    sergio

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    Se uso group by mi da errore:

    Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause). Proccess Stopped ecc ecc

    la query semplicissima è del tipo

    select * from tabella where campo1 > 1 group by campo2

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    Per alka

    questo qui di seguito è il link che dicevo sopra

    Clicca qui


    Ho visto adesso che si riferisce a SQL Server...forse cambia!!!

    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 © 2024 vBulletin Solutions, Inc. All rights reserved.