Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170

    script per estrapolare dati da una tabella

    Ho una tabella pratiche dove ho il campo num_pra, che si ripete, ed il campo versione, che cambia: ossia
    num_pra versione
    100 1
    150 0
    100 2
    130 0
    100 0
    Devo estrarre il campo num_pra senza duplicati e con la versione più alta, e visto che non ci riesco tramite sql, vorrei farlo tramite uno script in php.
    Qual'è il modo migliore per ottenere questo risultato?

    Thanks

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    SELECT num_pra, MAX(versione)
    FROM tabella
    GROUP BY num_pra

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170

    Grazie mille!

    Non sai quante cose mi stavo inventando per ottenere il risultato che le 3 righe di codice che mi hai scritto fanno in maniera egregia e sopratutto, semplicissima!!!
    Un ultima cosa: posso ottenere anche gli altri campi della tabella, fermo restando le condizioni già poste, implementando la query che mi hai riportato?
    Grazie ancora per il valido aiuto!

  4. #4
    si basta che li includi nel GROUP BY

    GROUP BY num_pra, campo1, campo2, campo3..
    Success in life is a matter not so much of talent and opportunity as of concentration and perseverance.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170
    si basta che li includi nel GROUP BY
    Ma se li includo nel group by, poi ottengo che i record vengono distinti non solo per num_pra, ma anche per tutti gli altri campi ( io devo estrarre tutti i campi della tabella distinti solo per num_pra e con versione più alta)
    Si può fare con un'unica query?
    Oppure come!?!?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    http://forum.html.it/forum/showthrea...t=group+by+max

    leggiti questa discussione. il problema è identico.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170

    letto, ma...

    Ho provato questa query, solo che mi da un risultato errato: mi da più record di quelli che dovrei ottenere (il nr di record della query che mi seleziona solo il campo PRATICHE.NUMERO e Max(PRATICHE.versione) dovrebbe coincidere con quello della query sotto riportata e che ho fatto per avere tutti i campi!):

    SELECT *
    FROM
    (SELECT PRATICHE.NUMERO, Max(PRATICHE.versione) AS versione from pratiche
    group by PRATICHE.NUMERO) as tab1
    inner join PRATICHE as tab2 ON (tab1.versione = tab2.versione) and (tab1.numero=tab2.numero)

    Dove sbaglio?!?!!?
    P.S.: NUMERO sarebbe il campo che prima ho chiamato num_pra

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.