Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222

    [sql] problema con distinct ed order by

    Buongiorno a tutti.

    date le tabelle

    bollettino con campi
    desc-bol
    id-lis

    listabollettini con campi
    id-lis
    dtcre-lis

    e precisato che per ogni lista ci sono più bollettini con la stessa descrizione dovrei:

    estrarre le ultime 15 descrizioni dell'anno in corso. Aiutoooo!!!

    io ho prodotto questa select

    codice:
     
    
         Select distinct top 15  bollettino.[desc-bol]
         from bollettino
        where bollettino.[iden-cre]=2
        and bollettino.[iden-lis] in
            (
             Select [iden-lis] from listabollettini where
             year([dtcre-lis])=2005 and [iden-cre]=2
             order by [dtcre-lis] desc
           )
    ovviamente se aggiungo l'order by alla fine mi va in conflitto con il distinct.

    il risultato è giusto ma me la ordina alfabeticamente secondo la descrizione e non secondo la data di craezione.

    qualcuna sa aiutarmi?
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  2. #2
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    ho trovato anche questa soluzione

    codice:
    select distinct [desc-bol] from bollettino
     where [iden-cre]=2 and [iden-lis] in
    
    (select top 15  [iden-lis] 
    from listabollettini 
    where [iden-cre]=2 and year([dtcre-lis])=2005 
    order by [dtcre-lis] desc)
    l'unico problema è che se inserisco 15 liste con la stessa descrizione mi tirerà fuori un solo record

    aiuto!!!!
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  3. #3
    codice:
    Select distinct top 15  bollettino.[desc-bol]
        from bollettino
        INNER JOIN listabollettini ON bollettino.[iden-lis] = listabollettini.[iden-lis]
        where bollettino.[iden-cre]=2
    		and  year(listabollettini.[dtcre-lis])=2005 
    		and listabollettini.[iden-cre]=2
        order by listabollettini.[dtcre-lis] desc
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  4. #4
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    io ho risolto giusto 2 secondi fa in questo modo
    codice:
     
    select top 15  bollettino.[desc-bol],
    max(listabollettini.[dtcre-lis]) 
     from bollettino, listabollettini 
    where bollettino.[iden-cre]=2 
    and listabollettini.[iden-lis]=bollettino.[iden-lis]
    and year(listabollettini.[dtcre-lis])=2005   
    group by [desc-bol] 
    order by max(listabollettini.[dtcre-lis]) desc
    che dici va bene lo stesso ?
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  5. #5
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    Originariamente inviato da lufo5
    codice:
    Select distinct top 15  bollettino.[desc-bol]
        from bollettino
        INNER JOIN 
    listabollettini ON bollettino.[iden-lis] = listabollettini.[iden-lis]
        where bollettino.[iden-cre]=2
    		and  year(listabollettini.[dtcre-lis])=2005 
    		and listabollettini.[iden-cre]=2
        order by listabollettini.[dtcre-lis] desc
    Qui l'order by va in conflitto con distinct

    cmq grazie lo stesso
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  6. #6
    Originariamente inviato da Melly
    Qui l'order by va in conflitto con distinct

    cmq grazie lo stesso
    e allora non fare il distinct ma fai un group by.
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  7. #7
    Originariamente inviato da Melly
    io ho risolto giusto 2 secondi fa in questo modo
    codice:
     
    select top 15  bollettino.[desc-bol],
    max(listabollettini.[dtcre-lis]) 
     from bollettino, listabollettini 
    where bollettino.[iden-cre]=2 
    and listabollettini.[iden-lis]=bollettino.[iden-lis]
    and year(listabollettini.[dtcre-lis])=2005   
    group by [desc-bol] 
    order by max(listabollettini.[dtcre-lis]) desc
    che dici va bene lo stesso ?
    se a te va bene... direi di si.
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  8. #8
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    grazie
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

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.