- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query in un unica tabella
-
Query in un unica tabella
Ciao a tutti,
Dovrei fare una query apparentemente banale relativa ad un unica tabella.
Vi faccio un esempio nella speranza di illustrarvi il problema.Supponiamo di avere una tabella composta tra tre colonne: tipo_auto, viaggio, data
- In tipo_auto sono contenute i nomi di alcune auto
- in data la data dell' viaggio effettuato
- in viaggio, la destinazione del viaggio effettuato.Supponiamo di avere 3 auto e che ogni una, in data diversa abbia fatto 3 viaggi.
La tabella potrebbe essere qualcosa di simile:
tipo_auto | viaggio | data -------------------------------------- BMW | Roma | 15-01-2007 AUDI | Milano | 11-01-2007 FIAT | Bergamo | 25-01-2005 BMW | Napoli | 05-01-2007 BMW | Torino | 02-12-2006 FIAT | Palermo | 10-10-2006 FIAT | Bologna | 15-01-2007 AUDI | Pisa | 07-06-2006 AUDI | Bolzano | 06-01-2007
l' obiettivo e avere una query che mi restituisca un record per ogni auto.
Il record deve rappresentare l' ULTIMO viaggio effettuato da tale auto.In pratica dovrei riuscire ad estrarre:
FIAT | Bologna | 15-01-2007
BMW | Roma | 15-01-2007
AUDI | Milano | 11-01-2007Come fare ?
Ciao e buona serata a tutti...
Il database : MySQL o in alternativa SQL Server 2000
-
SELECT * FROM
nome_tabella
GROUP BY tipo_auto ORDER BY data DESCdovrebbe andare bene...
-
no scusami ho detto una ca**ata...
-
no problem, in apparenza dovrebbe essere una sciocchezza ma....
Se consideri che nella tabella esiste anche un ulteriore campo: "ora" e la query dovrebbe teneere in considerazione anche quello per l' estrazione dei dati , l'affare si complica ancora un poco di piu'.
Comunque grazie per il tentativo.
CIAO
-
SELECT tipo_auto, viaggio, max(
DATA )
FROMnometabella
GROUP BY tipo_auto
ORDER BY DATA ASC
LIMIT 0 , 30
-
no luic77, nemmeno questa va bene perchè non mantiene l'associazione tra il viaggio e la data.
Nel suo caso, ad esempio, non selezionerebbe:
FIAT | Bologna | 15-01-2007
ma
FIAT | Bergamo | 15-01-2007
-
Questa mi sembra buona ma....la tabella su cui lavoro e grossa ed una query simile e' lunghissima...!
select * from Tabella T
Inner join
(select Tipo_auto , max([Data]) as MaxData from Tabella group by Tipo_auto) as Q1
on T.Tipo_auto=Q1.Tipo_auto AND t.[Data]=Q1.MAxDataQualcuno vede delle alternative ?
Grazie