Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 50

Hybrid View

  1. #1
    perfetto e chiaro, optime
    grazie a tutti per l'aiuto

  2. #2
    salve, devo aggiungere una cosa alla discussione... cosa che si é appena presentata
    applico la select come abbiamo detto
    funziona tutto tranne l'ordinamento, ossia

    select * from archivio where anno='2013' and tipo='lab' GROUP BY data, fascia order by data desc, fascia desc, ID desc

    il problema é questo:

    viene estratto correttamente il record interessato, però, mentre le date e le fasce sono correttamente ordinate in senso decrescente, ossia mi prende l'ultima data e all'interno di questa l'ultima fascia, per l' ID invece mi prende sempre il primo, cioé il più basso, come se avessi impostato un ordinamento crescente dell' ID, invece di prendermi il valore più alto, avendo io impostato un ordinamento decrescente come per i campi data e fascia.

    esempio:

    data 05/12/2013 fascia 5 ID 15 (questo é il record che dovrebbe essere correttamente considerato)
    data 05/12/2013 fascia 5 ID 14
    data 05/12/2013 fascia 5 ID 13 (questo é il record erroneamente considerato)

    data 05/12/2013 fascia 4 ID 12 (questo é il record che dovrebbe essere correttamente considerato)
    data 05/12/2013 fascia 4 ID 11
    data 05/12/2013 fascia 4 ID 10 (questo é il record erroneamente considerato)

    data 05/12/2013 fascia 3 ID 9 (questo é il record che dovrebbe essere correttamente considerato)
    data 05/12/2013 fascia 3 ID 8
    data 05/12/2013 fascia 3 ID 7 (questo é il record erroneamente considerato)

    data 05/12/2013 fascia 2 ID 6 (questo é il record che dovrebbe essere correttamente considerato)
    data 05/12/2013 fascia 2 ID 5
    data 05/12/2013 fascia 2 ID 4 (questo é il record erroneamente considerato)

    data 05/12/2013 fascia 2 ID 3 (questo é il record che dovrebbe essere correttamente considerato)
    data 05/12/2013 fascia 2 ID 2
    data 05/12/2013 fascia 2 ID 1 (questo é il record erroneamente considerato)

    spero di esser stato chiaro
    grazie in anticipo a tutti
    Ultima modifica di marco.agelao; 05-12-2013 a 11:56

  3. #3
    perché senza le funzioni di aggregazione l'animale prende il primo che gli capita a tiro (la order by NON influenza la group by)

  4. #4
    ok optime, grazie

    però, se ricordi, con il MAX non funzionava con MySQL

    che posso fare?

  5. #5
    molto strano, dovrebbe. cosa fa esattamente?

  6. #6
    probabilmente, se dici così, ho sbagliato qualcosa io
    allora, la select completa é

    select * from archivio where anno='" & annualita & "' GROUP BY dati_solodata, dati_numerofascia order by dati_solodata desc, dati_numerofascia desc, ID desc

    come posso applicare la funzione di aggregazione?

  7. #7
    prendi spunto dalla prima select che ti ho postato ("nudi" i campi che metti già nella group by, max() per tutti gli altri che vuoi estrarre)

  8. #8
    ok, quindi non metto * ovviamente per indicare tutti i campi da caricare indistintamente, ma li indico tutti singolarmente premettendo max a quelli non coinvolti nel group by, e mantenendo pero' order by per come l'ho impostato, no?

    ho capito bene?
    piu' tardi avro' modo di provare e ti faro' sapere. grazie intanto

  9. #9
    bravo! tra l'altro, mettere * è considerata una bad practice

  10. #10
    allora
    ho appena provato ma con MySql i campi su cui uso max non li vede proprio
    la select completa é

    select dati_solodata, dati_numerofascia, max(fascia), max(userid), max(dati_nomegiornosettimana), max(dati) from archivio where anno='" & annualita & "' and dati like'%" & nominativo & "%' GROUP BY dati_solodata, dati_numerofascia order by dati_solodata desc, dati_numerofascia desc, ID desc

    ma non va

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