Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    select di un risultato inner join

    Ciao a tutti, avrei bisogno di un aiuto.
    Ho una query del genere

    SELECT lav_pezzi.code_lav,lav_pezzi.serie_lav,lav_pezzi.r evisione,lav_pezzi.datazione,lav_pezzi.lavorazione ,lav_strutture.clienti,lav_strutture.struttura,all uminio.codeAlu
    FROM lav_pezzi
    INNER JOIN lav_corrisp_strutture
    ON lav_pezzi.ID_pezzi=lav_corrisp_strutture.ID_lav_pe zzi
    INNER JOIN lav_strutture
    ON lav_strutture.ID=lav_corrisp_strutture.ID_lav_stru tture
    INNER JOIN alluminio
    ON alluminio.ID=lav_corrisp_strutture.ID_serie_alu
    WHERE lav_pezzi.ID_pezzi='3'


    in pratica è l'unione di 3 tabelle, e fin qui tutto ok.
    Il risultato come si vede mi elenca tutti gli "ID_pezzi" della tabella "lav_pezzi" legate appunto ad altre tabelle.
    Gli ID_pezzi non sono univoci ma possono avere più revisioni registrati appunti su una colonna revisione, quindi posso avere di risultato più righe uguali con la colonna revisione differente ( esempio 1-2-3-4).
    Quindi vorrei che del risultato della query mi visualizzasse solo i valori più gradi della colonna revisioni per ogni ID_pezzi

    E' possibile???

  2. #2
    fa' un esempio del tipo: ho questi dati in input, vorrei questi dati in output

  3. #3
    l'allegato è un copia incolla del risultato della mia query postata sopra.
    da questo risultato vorrei estrapolare solamente tutte le righe con le revisioni più grandi (in questo esempio con il valore 2 ma possono assumere qualsiasi numero) sempre legate al code_lav.
    Quindi nell'esempio vorrei solo 2 righe con code_lav "paperino" revisione 2 per entrambi con le corrispettive strutture e codeAlu.
    In pratica filtrare tutti i code_lav con le corrispettive revisioni piu grandi.
    Volendo potrei usare anche una tabella temporanea ................................
    Immagini allegate Immagini allegate

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954
    Quote Originariamente inviata da emanuele.porzi Visualizza il messaggio
    l'allegato è un copia incolla del risultato della mia query postata sopra.
    da questo risultato vorrei estrapolare solamente tutte le righe con le revisioni più grandi (in questo esempio con il valore 2 ma possono assumere qualsiasi numero) sempre legate al code_lav.
    Quindi nell'esempio vorrei solo 2 righe con code_lav "paperino" revisione 2 per entrambi con le corrispettive strutture e codeAlu.
    In pratica filtrare tutti i code_lav con le corrispettive revisioni piu grandi.
    Volendo potrei usare anche una tabella temporanea ................................
    Dovresti aggiungere alla tua query, nella clausola WHERE, una condizione sulla non esistenza di un successivo.

    Una cosa del tipo NOT EXISTS(SELECT 'NEXT' FROM ....)

    Per poterti aiutare al meglio dovresti dettagliare al meglio la tua struttra delle tabelle, dei dati di input e come ti aspetti l'output.

  5. #5
    Ci provo
    La tab prima chiamata lav_pezzo nella query è la tabella principale dove ci sono gli ID_pezzi che identificano una code_lav (non sono univoci si possono ripetere come vedremo)
    La tab rif riassume tutte le corrispondenze ovvero la ID_lav_pezzi è la colonna dei prima citati ID_pezzi e lega l’ID_pezzo ID_lav_strutture e ID_serie alu oppure pvc
    Con le inner join compongo i dati come da primo allegato.
    In pratica where lavora sulla tab prima e oltre dichiarare l’ID_pezzi dovrei selezionare per ogni ID_pezzo la revisione più grande (nelle foto è presente solo 1 ma può essere di più numeri)
    Immagini allegate Immagini allegate

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.