Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 39
  1. #11
    Quote Originariamente inviata da optime Visualizza il messaggio
    Se i campi sono in entrambe le tabelle non capisco il senso della JOIN…
    Infatti, ho fatto un po di tentativi ma non so come risolvere il problema: ho una tabella "dati "con i seguenti campi: nas, iniziale, progressivo (numerico), nome_file.
    L'obbiettivo è quello di estrarre il record con il progressivo più alto e per questo ho utilizzato la funzione MAX(progressivo) nella SELECT. Eseguendo una semplice query il risultato che ottengo è che il progressivo è quello più alto, ma non so come collegarlo al corrispondente record, cioè, il risultato mostra il campo con il progressivo più alto ma i restanti campi riportano sempre i valori quelli del primo record e non quelli del record associato al valore "progressivo" estratto...ed è qui che mi sono perso e per questo sto cercando aiuto...
    Spero di essermi spiegato
    Grazie per la pazienza
    Alberto B.

  2. #12

  3. #13

  4. #14
    la ORDER BY() ovviamente DESC, e poi LIMIT 1 come adesso per prenderne solo 1

  5. #15
    Quote Originariamente inviata da optime Visualizza il messaggio
    la ORDER BY() ovviamente DESC, e poi LIMIT 1 come adesso per prenderne solo 1
    Questa è la SELCT con ORDER BY() - il risultato rimane alterato, il nome del file non corrisponde al numero progressivo estratto, continua a prendere i restanti dati dal primo record per ogni gruppo di iniziali.

    SELECT id_dati, nas, iniziale, MAX(progressivo), file FROM dati WHERE nas='NAS112' GROUP BY iniziale ORDER BY(iniziale) - ho provato anche a togliere tutte le condizioni tranne ORDER BY(), non cambia niente.

    Il Risultato che ottengo è questo (i nomi dei file e gli id sono dello stesso record ma non corrispondono al record del progressivo - nel caso del progressivo 70 il suo id_dati è 82, la SELECT prende il 12 cioè il primo disponibile, come per gli altri):

    id_dati - NAS - Iniziale - progressivo - File
    12 NAS112 a 70 xxxxxxxx
    83 NAS112 b 40 xxxxxxxx
    123 NAS112 c 57 xxxxxxxx
    .......
    Alberto B.

  6. #16
    SELECT elenco_colonne FROM tabella ORDER BY colonna DESC LIMIT 1

    NON usare MAX()

  7. #17
    Quote Originariamente inviata da optime Visualizza il messaggio
    SELECT elenco_colonne FROM tabella ORDER BY colonna DESC LIMIT 1

    NON usare MAX()
    Ok così funziona...per un singolo record, quello che non capisco, provo a spiegarmi meglio, la colonna iniziale contiene le lettere a, b, c, d e così via, ad ogni lettera è associato un progressivo ed un nome flie, quindi ho n record con n progressivo per ogni lettera con il suo nome file, quello che non riesco a fare, per questo usavo MAX, è raggruppare le singole lettere aventi il solo progressivo più alto e il relativo nome file,
    quindi ogni riga estratta dovrà contenere la lettera corrispondente al proprio progressivo più alto ed il relativo campo 'file'...se, per esempio, sono presenti 10 record con lettera a, lettera b ecc. (il progressivo della 'a' va da 1 a 9, il progressivo della 'b' va da 1 a 10) il mio obbiettivo è quello di visualizzare le singole righe con la lettera a con il progressivo più alto e nome file, la lettera b con il progressivo più alto e nome file e così via...tipo:
    a 9 nome file
    b 10 nome file
    Alberto B.

  8. #18
    puoi fare un esempio? del tipo: questa è la tabella, questi sono i dati, questo è ciò che voglio ottenere. grassssie

  9. #19
    Quote Originariamente inviata da optime Visualizza il messaggio
    puoi fare un esempio? del tipo: questa è la tabella, questi sono i dati, questo è ciò che voglio ottenere. grassssie
    Ho provato ad allegare gli screenshot di phpmyadmin dove si vede la struttura ed il contenuto della tabella, sono dati di esempio, ho ricostruito la tabella identica all'originale la quale contiene diverse migliaia di righe.

    Quindi, a fronte dei dati in tabella, l'output che mi aspetto dovrà essere (sembra una cosa banale ma ci ho perso la testa):

    NAS | Iniziale | Progressivo | File
    -------------------------------------
    NAS112 | a | 4 | file_4
    NAS112 | b | 4 | file_4
    NAS112 | c | 3 | file_3

    struttura_tbl_2.jpg

    contenuto_tbl_2.jpg
    Alberto B.

  10. #20
    primo, la situazione descritta è decisamente diversa da quella esposta nel primo post, ne convieni? comunque, niente di difficile

    devi mettere in relazione (in JOIN) la tabella dati così com'è con una subquery dove fai una GROUP BY per nas e iniziale e prendi il MAX(progressivo)

    fa' qualche prova, poi se hai errori posta i risultati che vediamo

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.