Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [MYSQL] JOIN e MAX()

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    56

    [MYSQL] JOIN e MAX()

    Salve,

    sto riscontrando problemi nel tentativo di fare una JOIN su una tabella nella quale ho bisogno di prendere solo la riga con la data più grande;

    mi spiego meglio, queste sono le mie tabelle:

    codice:
    ARTICOLI
    =========
    cod 	        
    descriz 	
    prezzo_vendita
    id_ditta
    codice:
    ARTICOLI_ACQUISTO
    =========
    cod_articolo 	        
    data_acquisto
    qta_comprata
    id_fornitore
    prezzo_acquisto
    io vorrei fare una query per ottenere una LISTA DI ARTICOLI con

    CODICE_ARTICOLO - PREZZO_VENDITA - PREZZO_ACQUISTO

    dove PREZZO_ACQUISTO è quello che ha la DATA PIU' RECENTE (la più grande quindi)


    spero di essermi spiegato bene e in ogni caso grazie in anticipo.

    Andrea

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Nel caso lo stesso articolo venga acquistato da più persone lo stesso giorno?

    Dai comunque uno sguardo a questo thread:

    http://forum.html.it/forum/showthrea...readid=1440170

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    56
    intanto grazie, adesso mi metto subito a leggere...

    comunque no, quelle tabelle mi servirebbero per contenere gli articoli che vengono inseriti dall'utente in modo che quando vuole fare un DDT ha quei dati

    (la tabella fa riferimento agli articoli acquistati dall'utente che usa quel programma)

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ok. Allora leggiti la discussione. Se poi non risolvi facci sapere.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    56
    ho letto ma non ci sono riuscito

    praticamente il mio problema è che non riesco a fare la JOIN tra le due tabelle quando ho la riga dell' CODICE ARTICOLO con la DATA maggiore..

    sono fuso

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Partendo da questa query del thread che ti ho linkato

    codice:
    select t1.* from ps_order_history as t1
    inner join (
    select id_order,max(`date_add`) as `date_add`
    from ps_order_history
    group by id_order) as t2
    on t1.id_order = t2.id_order and t1.`date_add` = t2.`date_add`
    che difficoltà hai?
    Nella query interna al posto di date_add avrai data_articolo e raggrupperai per codice articolo. Il join lo fai tra cod e cod_articolo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    56
    seguendo il tuo consiglio ho fatto

    codice:
    select t1.* from articoli as t1
    inner join (
    select cod_articolo,max(data_acq) as data_acq
    from articoli_acquisto
    group by cod_articolo) as t2
    on t1.cod = t2.cod_articolo and t1.data_acq = t2.date_acq
    solo che continuo ad avere il problema della data

    nella tabella t1 non c'è il campo date_acq

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così

    codice:
    select a.*,b.prezzo_acquisto from articoli as a left join (
    	select cod_articolo,prezzo_acquisto
    	from articoli_acquisto as a1
    	where data_acq = (select max(a2.data_acq)
    			  from articoli_acquisto as a2
    			  where a1.cod_articolo=a2.cod_articolo)
    			 ) as b
    on a.cod = b.cod_articolo

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    56
    scusa il ritardo della mia risposta, ho avuto un problema e mi sono assentato (ha fatto bene alla mia lucidità mentale).
    comunque quello che mi hai postato funziona alla perfezione, ti ringrazio moltissimo sia per la celerità della risposta che per la tua gentilezza.

    ciao e grazie ancora

  10. #10

    Re: [MYSQL] JOIN e MAX()

    Originariamente inviato da icyz
    codice:
    ARTICOLI
    =========
    cod 	        
    descriz 	
    prezzo_vendita
    id_ditta
    codice:
    ARTICOLI_ACQUISTO
    =========
    cod_articolo 	        
    data_acquisto
    qta_comprata
    id_fornitore
    prezzo_acquisto
    io vorrei fare una query per ottenere una LISTA DI ARTICOLI con
    CODICE_ARTICOLO - PREZZO_VENDITA - PREZZO_ACQUISTO
    dove PREZZO_ACQUISTO è quello che ha la DATA PIU' RECENTE (la più grande quindi)
    edit: ho capito male il problema

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.