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

    [sql] Problemi con una query

    Ciao a tutti.

    Mi sto scervellando su un problema con una semplice ( spero ) query su una tabella.
    Premetto che sto usand Sql Server 2000 anche se visto il problema non fa nessuna differenza.
    Veniamo al punto :

    Ho una tabella con i seguenti campi ( o colonne come volete )

    ID Nome Descrizione Dimensione

    Questa tabella č perō piena di duplicati, ovvero di record con i campi Nome,Descrizione,Dimensione identici , ma con una chiave ID diversa.

    La prima cosa che voglio fare con questa tabella č eliminarne i duplicati e ci sono riuscito con la seguente query : SELECT DISTINCT Nome,Descrizione,Dimensione FROM Tabella

    A questo punto ho un problema :
    Nella nuova Tabella (quella ottenuta con la query) mi serve anche il campo ID proveniente dalla tabella originale.

    Mi spiego meglio :

    Se nella vecchia tabella ( quella con i duplicati ) ad esempio avevo i primi 10 record che erano tutti identici , tranne per il fatto che avevano 10 ID diverse, ora nelle nuova tabella vorrei avere un record solo che perō presenta anche il campo ID originale (intendo una ID che sia o 1, o 2, .... o 10)

    Spero di essere stato chiaro e ringrazio in anticipo sperando che mi salvate da questo problemone


    P.S.

    Purtroppo non posso in alcun modo modificare la tabella originale cancellando i doppioni. Posso solo fare delle query su di essa per visualizzare in un browser la mia nuova tabella. Ringrazio le istruzioni del mio tutor della tesi a riguardo

  2. #2
    select *
    from ...
    group by Nome, Descrizione, Dimensione


    Il silenzio č spesso la cosa migliore. Pensa ... č gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    query= SELECT ecc.. GROUP BY Nome, Descrizione, Dimensione;
    //estrai ID


  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Giā, in pratica come ha giā detto Piero

  5. #5
    Originariamente inviato da piero.mac
    select *
    from ...
    group by Nome, Descrizione, Dimensione

    [SqlException: Column 'Tabella.ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.]



    Aiuto

  6. #6
    Prova con questa:

    Codice PHP:
    SELECT 
         Nome
        
    ,Descrizione
        
    ,Dimensione 
        
    ,(SELECT TOP 1 
             C
    .Id 
          FROM 
             Tabella C 
          WHERE 
             P
    .Nome=C.Nome
             
    -- AND P.Descrizione=C.Descrizione 
             
    -- AND P.Dimensione=C.Dimensione
          ORDER BY 
             C
    .Id
       
    IDEN
    FROM 
       Tabella P
    GROUP BY 
        Nome
       
    ,Descrizione
       
    ,Dimensione 
    ORDER BY
       Nome 
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #7
    Originariamente inviato da AnĒkin
    Prova con questa:

    Codice PHP:
    SELECT 
         Nome
        
    ,Descrizione
        
    ,Dimensione 
        
    ,(SELECT TOP 1 
             C
    .Id 
          FROM 
             Tabella C 
          WHERE 
             P
    .Nome=C.Nome
             
    -- AND P.Descrizione=C.Descrizione 
             
    -- AND P.Dimensione=C.Dimensione
          ORDER BY 
             C
    .Id
       
    IDEN
    FROM 
       Tabella P
    GROUP BY 
        Nome
       
    ,Descrizione
       
    ,Dimensione 
    ORDER BY
       Nome 
    Scusami se faccio domande stupide ma sono alle prime armi con SQL.
    La mia tabella vecchia di partenza quale sarebbe delle 2 ?
    E visto le due tabelle che mi citi tu deduco che devo prima applicare la query da me descritta sopra e poi quella che hai scritto tu... Scusa ma sono un pō in difficoltā...
    Grazie in ogni caso!

  8. #8
    Allego una piccola immagine per fare capire meglio il problema.
    Io ho la tabella di sopra e voglio ottenere quella di sotto con una query.
    Preciso che il campo OID č chiave priamria SOLO nella tabella di SOPRA.



    TABELLE!!!!!!


    Speriamo bene

    P.S.
    nella seconda tabella intendevo l - m - n

  9. #9
    Originariamente inviato da Duncan_McCloud
    Scusami se faccio domande stupide ma sono alle prime armi con SQL.
    La mia tabella vecchia di partenza quale sarebbe delle 2 ?
    E visto le due tabelle che mi citi tu deduco che devo prima applicare la query da me descritta sopra e poi quella che hai scritto tu... Scusa ma sono un pō in difficoltā...
    Grazie in ogni caso!
    figurati. Le due query nidificate interrogano la stessa tabella di partenza, devi sostiture "Tabella" con Table1 sia nella query principale che in quella nidificata e anche i campi... "C.Nome" diventa "C.Name" etc, etc. Puoi anche decommentare le due condizioni (togli i due trattini "--" prima degli AND).
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  10. #10
    Originariamente inviato da AnĒkin
    figurati. Le due query nidificate interrogano la stessa tabella di partenza, devi sostiture "Tabella" con Table1 sia nella query principale che in quella nidificata e anche i campi... "C.Nome" diventa "C.Name" etc, etc. Puoi anche decommentare le due condizioni (togli i due trattini "--" prima degli AND).
    ho inserito la query seguente come mi hai consigliato :

    SELECT Name, Description, LobFileSize,
    (SELECT TOP 1 P.OID
    FROM SupportMaterial C
    WHERE P.Name = C.Name
    AND P.Description = C.Description
    AND P.LobFileSize = C.LobFileSize
    ORDER BY C.OID) AS IDEN
    FROM SupportMaterial P
    GROUP BY Name, Description, LobFileSize
    ORDER BY Name

    e ricevo quest'errore :

    [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'P.OID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.]


    TABELLE_ESEMPIO

    mi hanno fatto il malocchio

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.