+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Query ultimo valore.

  1. #1
    AndryFox non è in linea Novello
    Post
    25

    Query ultimo valore.

    Ciao,
    sto cercando di costruire una query che mi estragga da una tabella l'ultima riga per ogni macchina, ma ho difficoltà nell'ottenere il risultato.

    Chiamiamo la mia tabella TABELLA, mentre i campi interessati sono:
    CAMPOID - ID della riga
    CAMPOMACCHINA - Nome della maccchina
    CAMPOLAVORO - Numero del lavoro
    CAMPODATA - Data di scrittura (17-NOV-2017)
    CAMPOORA - campo di testo dell'ora di scrittura (08:00:00)

    Ho inizialmente provato ad utilizzare MAX(CAMPOID) ma mi restituisce più valori per ogni macchina.
    Seguendo anche altre istruzioni non mi tornano i dati che mi aspetto, es:

    codice:
    select 
    T1.CAMPOMACCHINA,
    T1.CAMPOID,
    T1.CAMPODATA,
    T1.CAMPOORA,
    T1.CAMPOLAVORO
    FROM
    TABELLA T1,
    (SELECT MAX(CAMPOID) as maxid, CAMPOMACCHINA
    FROM  TABELLA
    GROUP BY CAMPOMACCHINA) maxresults
    WHERE
    T1.CAMPOMACCHINA = maxresults.CAMPOMACCHINA
    AND T1.CAMPOID = maxresults.maxid
    ORDER BY 
    T1.CAMPOMACCHINA;
    Qualcuno è in grado di dirmi se sbaglio qualcosa o di darmi qualche dritta a riguardo?

    Grazie
    Ultima modifica di AntonioG; 17-11-2017 11:37  Motivo: Tag CODE per il codice della query

  2. #2
    grimreaper non è in linea Scolaretto
    Luogo
    Treviso
    Post
    459
    Ciao,
    scusami ma se fai:
    codice:
     
    SELECT campomacchina, max(id) FROM TABELLA GROUP BY campomacchina
    Ti da il risultato soddisfacente? Fatto quello puoi fare una left join sulla stessa tabella per ottenere i campo che ti servono.
    - The user formerly known as GRiM[R]eaPeR -

  3. #3
    AndryFox non è in linea Novello
    Post
    25
    Scusate, risolto.

    Era un problema legato a dei filtri sbagliati.
    Se a qualcuno servisse, la formula è corretta e funzionale!

  4. #4
    AndryFox non è in linea Novello
    Post
    25
    Quote Originariamente inviato da grimreaper Visualizza il messaggio
    Ciao,
    scusami ma se fai:
    codice:
     
    SELECT campomacchina, max(id) FROM TABELLA GROUP BY campomacchina
    Ti da il risultato soddisfacente? Fatto quello puoi fare una left join sulla stessa tabella per ottenere i campo che ti servono.
    Ciao grimreaper,
    grazie per la risposta. Ho provato come mi hai detto, inizialmente solo con il max e il campo interessato funziona, mentre tramite left outer join mi restituisce tutto, indifferentemente dal filtro.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi