Raggruppare ed estrarre data più recente

stefanoxjx

Utente Attivo
24 Feb 2017
46
1
8
56
Ciao a tutti, ho un problema in una query che non vuole saperne di darmi soddisfazione :(
Ho due tabelle (Elenco, Valutazione) così composte:

Tabella Elenco:
ID
Descrizione
49A
50B

Tabella Valutazione:
ID
Ext_Id
Elenco_Id
Valutazione
Data
124942020-11-30
224952020-12-12
325042020-12-12
425022020-12-28

Avrei bisogno di estrarre da queste tabelle, il record con data più recente in base a Ext_id e il raggruppamento di Elenco_Id.

Per questa esigenza, ho scritto questa query:
Codice:
SELECT Elenco.Descrizione, Elenco.Id, MAX(valutazione.Data), Valutazione.Valutazione, Valutazione.Id FROM Elenco
JOIN Valutazione ON Valutazione.Elenco_Id = Elenco.Id WHERE Valutazione.Ext_Id = 2 GROUP BY elenco.Descrizione

Da questa query, mi aspetterei un risultato del tipo:
Descrizione
Elenco.ID
max(Valutazione.Data)
Valutazione
ID
A492020-12-1252
B502020-12-2824

Invece mi trovo con questo risultato:
Descrizione
Elenco.ID
ma(Valutazione.Data)
Valutazione
ID
A492020-12-1241
B502020-12-2843

Sono due giorni che faccio prove e non sono ancora riuscito a venirne a capo.
Cosa sto sbagliando secondo voi?
Grazie.

Stefano
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
prova con questa,
SQL:
SELECT e.descrizione, t.elenco_id, t.data, v.valutazione, v.id  FROM (
  SELECT
    v.elenco_id
  , MAX(v.data) as data
  FROM Valutazione v
  WHERE v.Ext_Id = 2
  GROUP BY v.elenco_id
) t
LEFT JOIN elenco e ON t.elenco_id = e.id
LEFT JOIN valutazione v ON t.elenco_id = v.elenco_id AND t.data = v.data

questo é il risultato

1607977028763.png


ps, non dimenticare la t dopo la parentesi tonda chiusa

in fondo alla query, puoi ordinare gli elementi selezionati con, per esempio,

ORDER BY descrizione DESC

1607977975557.png
 
Ultima modifica:
  • Like
Reactions: stefanoxjx

stefanoxjx

Utente Attivo
24 Feb 2017
46
1
8
56
Ciao Marino e grazie per la risposta.
La tua query sembrerebbe funzionare bene.
Domani faccio prove un po' più approfondite e poi ti confermo.
Effettivamente, con il mio livello di conoscenza di MySQL non ci sarei mai arrivato :(
Comunque imparo sempre qualcosa di nuovo :)
Grazie ancora.

Stefano
 

stefanoxjx

Utente Attivo
24 Feb 2017
46
1
8
56
Ciao Marino, grazie ancora per l'aiuto.
Ti confermo che la tua query funziona alla grande.

Stefano
 

Chiarabuonoz

Nuovo Utente
18 Ott 2022
2
0
1
ciao a tutti
mi collego a questo quesito ma è un pochino diverso.
Premetto che non sono assolutamente una programmatrice e sto iniziando ad imparare ad usare Access.
in allegato ho una lista materiali con i rispettivi testi, num documento d'acquisto, fornitore..., ed in fine la data di consegna relativa a quell'ordine.
il problema è che un materiale ha tante righe quanti sono gli ordini di acquisto.
Avrei la necessità di considerare SOLO la riga di un materiale con la data di consegna minore (più recente) raggruppando per materiale e lasciando le altre colonne con i valori rispettivi!!!
spero di essermi fatta capire.
grazie a chi risponderà!

Chiara

Cattura.PNG
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
anche in questo caso ottieni la data minima raggruppando per materiale,
poi per tutte le coppie selezionate , in join associ tutti gli altri valori

la stessa tabella può essere usata in join (vedi precedente discussione) usando gli alias
 

Chiarabuonoz

Nuovo Utente
18 Ott 2022
2
0
1
anche in questo caso ottieni la data minima raggruppando per materiale,
poi per tutte le coppie selezionate , in join associ tutti gli altri valori

la stessa tabella può essere usata in join (vedi precedente discussione) usando gli alias
Grazie mille Marino!! credo di esserci riuscita!!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Raggruppare valori array PHP 5
A Raggruppare record con stessa data PHP 13
max1974 raggruppare e girare i dati in colonne MySQL 11
max1974 [PHP] Raggruppare array PHP 4
MarcoGrazia [mysql][mariadb]Raggruppare query in base alla data MySQL 2
M [PHP] [HTML] Raggruppare 4 pagine web in una PHP 3
D Raggruppare dati query con php PHP 1
A Raggruppare piu' funzioni in una sola PHP 1
N Raggruppare risultati di due tabelle PHP 1
ivarello Raggruppare Query per mese PHP 1
mircop Raggruppare elementi di una tabella PHP 2
G Raggruppare record tabella PHP 1
davide1982 Raggruppare dati in categorie con group by MySQL 2
M Raggruppare dati in array per successivo insert PHP 6
X Raggruppare risultati di una query PHP 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
M Estrarre soltanto i prodotti con stessa descrizione PHP 10
peppe0703 Come Estrarre dati da db wordpress e richiamarli in html esterno HTML e CSS 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
M Estrarre valore con SELECT COUNT PHP 0
D Estrarre database con link esterno Database 10
F Estrarre ultima foto da cartelle PHP 2
R Estrarre valori duplicati più volte PHP 0
C Estrarre dati stringa Sql Database 1
L estrarre valori max tra più tabelle MySQL 2
L Estrarre da Cartella una determinata 'via' PHP 15
J estrarre url dei file video da youtube "get_video_info" PHP 6
M Estrarre dati da un database PHP 2
M Estrarre valori MAX da un db con una left join MySQL 8
M Estrarre dati da una select HTML PHP 3
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Estrarre dati da tabella e fare la media ad intervalli di tempo PHP 11
R [PHP] Estrarre id utente loggato.? PHP 4
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
P [MS ACCESS] Estrarre più somme da una query MS Access 4
trattorino estrarre titolo video facebook in php PHP 0
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
N [PHP] Estrarre singolo valore da array PHP 4
trattorino [PHP] sql estrarre in base all'ultima visita PHP 4
P [Visual Basic] access sql estrarre id vendite x cli e articolo con data maggiore del recordset Visual Basic 2
Jensen [PHP] Estrarre prossimi 4 lunedì PHP 4
trattorino [PHP] estrarre dati singoli PHP 1
G [PHP] estrarre data da timeline yyyy-dd-gg hh:mm:ss PHP 4
Z Estrarre dati da un DB Mysql PHP 4
I database mysql estrarre due tabelle Database 2
S [PHP] Estrarre dati colonna in una stringa PHP 6
S [PHP] estrarre dati sito web protetto con username e password PHP 13

Discussioni simili