Newsgroup: it.comp.appl.access
Titolo: selezionare il max

Vi spiego brevemente il mio problema, devo gestire dei pagamenti ed ho
creato questa query, ho inserito il campo "rinnovato" nella tabella
"pagamenti" per evitare di visualizzare una lista lunghissima di non paganti
SELECT [iscritti].[Cognome], [iscritti].[Nome], [pagamenti].[Datafine],
[pagamenti].[Descrizione], [pagamenti].[IdIscritto],
[pagamenti].[IdPagamento]
FROM iscritti INNER JOIN pagamenti ON
[iscritti].[IdIscritto]=[pagamenti].[IdIscritto]
WHERE ((([pagamenti].[Datafine])<=Date()) And [pagamenti].[Rinnovato]=No);
poi però ho pensato che potrebbe anche esserci la possibilità in cui un
iscritto non intenda rinnovare il suo abbonamento per il mese successivo ma
che abbia intenzione di tornare dopo TOT mesi e quindi per non perdere le
info ho pensato di inserire un campo "sospeso" nella tabella "iscritti"
SELECT [iscritti].[Cognome], [iscritti].[Nome], [iscritti].[Sospeso],
[pagamenti].[DATAfine], [pagamenti].[Descrizione]
FROM iscritti INNER JOIN (pagamenti INNER JOIN corsi ON
[pagamenti].[descrizione]=[corsi].[descrizione]) ON
[iscritti].[IdIscritto]=[pagamenti].[IdIscritto]
WHERE ((([iscritti].[Sospeso])=No) And
(([pagamenti].[DATAfine])<=Date()+7));
ora invece mi è venuto in mentre che potrei visualizzare solo la data più
recente (quindi il MAX) di un determinato pagamento (descrizione) inerente
ad ogni singolo iscritto e fare lì il controllo se è scaduto o meno.
Secondo voi è una buona "soluzione" o complico inutilmente?
Ho tre tabelle ISCRITTI - PAGAMENTI - CORSI collegate tra loro in questo
ordine (nella tabella pagamenti ci sono le chiavi esterne di iscritti e
corsi).
Grazie
Gianluca

 ha scritto nel messaggio 
news:45028bcb$0$30252$4faf...@reader1.news.tin.it...

Secondo me, quando le cose cominciano a farsi così complesse, ti conviene 
utilizzare una tabella di supporto da riempire tramite DAO.
Crea una query che secondo te fornisce le informazioni che ti interessano, 
poi la ordini con IDcliente crescente (se non hai ID con Cognome crescente e 
poi con Nome crescente o vedi un pò tu) e quindi con Datafine decrescente 
(ma senza nessun criterio).
Apri poi la query con un recordset tramite DAO, sapendo che nel primo record 
e ogni volta che incontri un Cognome-Nome diverso dal precedente, sarai nel 
record che avrà la datafine più alta, quella per cui tu hai interesse.
Riempi poi la tabella con i records di interesse e il risultato sarà molto 
buono.
Se non hai mai utilizzato i recordsets,  forniscimi magari l'SQL corretto e 
vedo di darti qualche dritta.
Saluti
Michele

La tua mail è valida?
Ti posso scrivere?
Saluti
Gianluca 

 ha scritto nel messaggio 
news:45084f3b$0$15881$4faf...@reader2.news.tin.it...

Validissima, 
joyl...@alice.it
 , scrivi scrivi
Saluti

 Validissima, 
joyl...@alice.it
 , scrivi scrivi
ho scritto, hai ricevuto?
Saluti
Gianluca 

 ho scritto, hai ricevuto?
Si, ti ho mandato una mail
Michele 

 Michele
Ora siamo tutti in ansia per sapere se questa mail giungerai mai....
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it


Era da vederla che arrivava l'ammonizione del grande capo....
Scusaci Massimiliano, siamo consapevoli di aver degenerato.
Michele 

 Michele
-- 
_ _


 ha scritto nel messaggio 
news:eedrqf$o21$1...@area.cu.mi.it...


Non mi permetterei mai
Rimediamo cosě:
--------------------------------------------------------
Function MA (Str as String) as String
'function che filtra le parole ambigue per Massimiliano
If Str="Grande Capo" then
    MA="The Master"
Else
    MA=""
End if
End function
-------------------------------------------------------
Saluti e buona giornata
PS si vede che oggi non sono andato a lavorare