Visualizzazione dei risultati da 1 a 5 su 5

Discussione: distinct mssql

  1. #1

    distinct mssql

    Ho un problema con le distinct su un db mssql.
    Ho una query su più campi, e vorrei che venissero rimossi i duplicati, per poi copiarli in un'altra tabella.
    Ho provato così:
    codice:
    $sql="insert into PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA(id_progetto_attivita,descrizione,ore,settimana,anno,insert_quando) select distinct PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.id_progetto_attivita,PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.descrizione, PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.ore," . $numsett . "," . $anno . ",'" . time() . "' from PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA, PROGRESS_TBL_COL_UTENTI_PROGETTI,PROGRESS_TBL_PROGETTO_ATTIVITA where id_progetto_attivita_status not in (1,6) and PROGRESS_TBL_COL_UTENTI_PROGETTI.id_prog_utente=PROGRESS_TBL_PROGETTO_ATTIVITA.id_prog_utente and PROGRESS_TBL_PROGETTO_ATTIVITA.id_progetto_attivita=PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.id_progetto_attivita and PROGRESS_TBL_COL_UTENTI_PROGETTI.id_iamme_admin=" . $_SESSION['id'];
    		mssql_query($sql,$connessione) or die("Query non valida: " . mssql_error());
    Ma mi appare il seguente errore

    Warning: mssql_query() [function.mssql-query]: message: Impossibile selezionare il tipo di dati text, ntext o image come DISTINCT. (severity 16) in C:\Programmi\EasyPHP 2.0b1\www\imagine\sett_duplica.php on line 50

    Allora ho provato a fare la distinct solo sul campo id_progetto_attivita che è un numerico così

    codice:
    ......
    select distinct(PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.id_progetto_attivita),PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.descrizione, PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.ore..........
    Ma dà sempre lo stesso errore.
    Come posso fare? Come si può fare la distinct solo su un campo ed estrarne altri oltre a quello? Cioè fare la distinct solo sull'id_progetto_attivita ma estrarre anche tutti gli altri campi?

    Grazie

  2. #2
    usa
    group by PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.id_proget to_attivita
    al posto di DISTINCT
    forse risolve il problema

    saluti

  3. #3
    Se faccio il group by solo sull'id ovviamente mi da questo errore

    Messaggio 8120, livello 16, stato 1, riga 1
    La colonna 'PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.descrizi one' non è valida nell'elenco di selezione perché non è inclusa né in una funzione di aggregazione né nella clausola GROUP BY.
    Messaggio 8120, livello 16, stato 1, riga 1
    La colonna 'PROGRESS_TBL_PROGETTO_ATTIVITA_SETTIMANA.ore' non è valida nell'elenco di selezione perché non è inclusa né in una funzione di aggregazione né nella clausola GROUP BY.

    perchè bisogna includere nel group by tutti i campi presenti nella select.

    Se faccio il group by su tutti i campi invece mi da questo

    Messaggio 306, livello 16, stato 2, riga 1
    Impossibile confrontare oppure ordinare i tipi di dati text, ntext e image se non utilizzando IS NULL o l'operatore LIKE.

  4. #4
    non saprei, pensavo che era MySQL
    scusa

  5. #5
    Ho provato facendo un group by solo sull'id_progetto attività e mettendo gli altri campi come first, ma mi dice che first non è riconosciuto come nome di funzione........
    help pleaseeeeeeeee

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.