Newsgroup: it.comp.appl.access
Titolo: Query Sql facile facile

Dispongo di una tabella ASSOCIAZIONITARGHE
Composta dai campi Ditta, Natante, Targa, Valida_Dal
 
Supponiamo esistano 6 righe nella tabella:
Pippo, Natante1, Targa1, 14/01/2018
Mario, Natante1, Targa1, 01/01/2017 *
Tobia, Natante1, Targa1, 01/01/2016
Pluto, Natante6, Targa6, 14/01/2018
Pippo, Natante7, Targa7, 01/01/2017 *
Pippo, Natante8, Targa8, 01/01/2016 *
 
Avrei bisogno di una query che mi visualizzasse solo le righe contenenti 
targhe in uso e quindi quelle con asterisco
La prima riga e quarta no perche' con data ancora da venire
La terza riga no perche' per Targa1 e' piu' recente la seconda riga
Ora, ho provato una roba del tipo
 
SELECT Targa, max(Validita_Dal) from AssociazioniTarghe where 
Validita_Dal <= #04/01/2018 15:00:00# group by Targa
 
Ed in effetti restituisce le righe che mi interessano
Solo che per visualizzare nel risultato query i campi mancanti Ditta e 
Natante, avendo raggruppato per Targa, dovrei usare una qualche funzione 
di aggregazione per Ditta e Natante
Una roba del tipo
 
SELECT max(Ditta), max(Natante), Targa, max(Validita_Dal) from 
AssociazioniTarghe where Validita_Dal <= #04/01/2018 15:00:00# group by 
Targa
 
che evidentemente NON va bene perche' mi prenderebbe informazioni da 
altre righe che non siano le tre che desidero visualizzare
Allora la domanda e': data la tabella sopra, come impostare una query in 
modo che vengano restituite le righe delle targhe valide (la riga con 
Validita_Dal piu' alta ed <= #04/01/2017#) con indicazione di Ditta e
Natante delle righe visualizzate?
Inzomma il risultato dovrebbe essere kisto qua'
 
Mario, Natante1, Targa1, 01/01/2017 *
Pippo, Natante7, Targa7, 01/01/2017 *
Pippo, Natante8, Targa8, 01/01/2016 *

Ciao
perché non filtri direttamente la tabella?
non vedo motivi per fare raggruppamenti
 
Davide


Perche' non mi e' ben chiaro come tirar fuori una riga, per ogni targa, 
facendo in modo che risulti con Data_Da la piu' recente possibile, senza 
raggruppare

[cut]
ciao RoberoA,
supponendo la tabella,
id_nominativo long autonumber,
nome testo,
nomenatante Testo,
targa testo, 
data data/ora,
 
popolata come da tua descrizione
 
ottengo :
 
id_nominativo	nome	    nomeNatante  	targa	    data
2	        mario	    natante1	        targa1	      01/01/2017
5	        pippo	    natante7	        targa7	      01/01/2017
6	        pippo	    natante8	        targa8	      01/01/2016
 
con il predicato sql che segue :
 
SELECT T.id_nominativo,
       T.nome,
       T.nomeNatante, 
       T.targa,
       T.data
FROM 
     T_targa as T
where
     t.data=( select
                   max(data)
              from 
                   T_targa as t1
              where 
                   t1.targa=t.targa and t1.data<date());
 
Ciao, Sandro.

 Natante...
 
SELECT Ditta, Natante, Targa, Validita_Dal
FROM AssociazioniTarghe AS T1
WHERE Validita_Dal =
(SELECT MAX(Validita_Dal) FROM AssociazioniTarghe
  WHERE Validita_Dal <= #04/01/2018 15:00:00# AND Targa = T1.Targa)
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 


E' perfetta
Molte grazie
 


Si, e' proprio quello che serviva, grazie