Newsgroup: it.comp.appl.access
Titolo: Query e subset di record

Ciao al NG,
semplicemente: ho una tab. con 2 campi. Tre records in cui: il prima campo
mi dice il COD_CLIENTE (1 ALDO; 1 ALDO; GIANNI) il secondo la DATA (1
01/01/2001;2 01/02/2001; 3 01/01/2001).
Vorrei produrre una query con data max ovvero che mi restituisse i record:
ALDO -  01/02/2001; GIANNI 01/01/2001.
Grazie
Giorgio

Giorgio Barbetta wrote:

aggiungi un campo nella query: Left(campo1,5) & Left(campo2,10)
per gli altri accoppiamenti ti puoi aiutare con le altre Funzioni Mid e Right
giuseppe

 wrote in message
7sl96.6257$FL1.1...@twister2.tin.it...

Devi fare una query di raggruppamento sul campo cod_cliente e mettendo la
funzione max sul campo data
Antonio

 ha scritto nel messaggio
news:Hkp96.77053$eB2.6...@news.infostrada.it...

Grazie Antonio, ma non funzia.

 ha scritto nel messaggio
news:3A661F44...@tin.it...

Grazie Giuseppe, ma scusa la mia ignoranza se ti chiedo come posso avere la
data Max utilizzando solo funzioni di aggregazione stringhe?

 wrote in message
ymy96.7$0R5...@twister1.tin.it...

Mi spiace ma non è possibile. Avrai commesso qualche errore nel fare quello
che ho detto! Che problemi ti da?
Antonio

 ha scritto nel messaggio
news:pVA96.79319$eB2.6...@news.infostrada.it...
|
| Mi spiace ma non è possibile. Avrai commesso qualche errore nel fare
quello
| che ho detto! Che problemi ti da?
|
| Antonio
|
Antonio, comunque grazie di esserci.
Il problema sembra semplice ma in realtà nessuno tra i miei colleghi è in
grado di risolvere. Vediamo di spiegarmi meglio:
TABELLA
Nome            Data            Prezzo
Giorgio        01/01/00     1.000
Giorgio        31/01/00        800
Antonio        02/03/00    2.000
Vorrei avere una Select in grado di restituire i record con Data max. Nella
fattispecie mi aspetterei:
Giorgio        31/01/00        800
Antonio        02/03/00    2.000
Grazie infinite.
Giorgio

 wrote in message
pVC96.346$lT5....@twister1.tin.it...

SELECT Tabella1.nome, Max(Tabella1.data) AS MaxDidata FROM Tabella1
GROUP BY Tabella1.nome;
Questa sicuramente funziona per raggruppare per nome, e avere la data
massima. Per il prezzo in effetti ora non riesco a trovare l'escamotage, ma
ho poco tempo ora per ragionarci... Se mi viene in mente qualcosa....
Antonio

 ha scritto nel messaggio
news:aGD96.80749$eB2.6...@news.infostrada.it...


 Ciao
Giorgio, scrivi DOPO il quoting!
Sto provando ancora...
L'help on line è incasinato per uno che è completamente a digiuno di
programmazione. Se hai qualche base è fatto bene e puoi imparae molte cose.
Certo... bisogna perderci tempo dietro...
Antonio

 ha scritto nel messaggio
news:vOS96.86713$eB2.6...@news.infostrada.it...|
| Giorgio, scrivi DOPO il quoting!
|
| Sto provando ancora...
|
| L'help on line è incasinato per uno che è completamente a digiuno di
| programmazione. Se hai qualche base è fatto bene e puoi imparae molte
cose.
| Certo... bisogna perderci tempo dietro...
|
| Antonio
|
Ok!
Non ho la base da cui imparare. Dove la posso trovare?
Giorgio

| > Antonio        02/03/00    2.000
SELECT NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
FROM NomiPrezzi
GROUP BY NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
HAVING (((NomiPrezzi.Data) In (SELECT  Max(NomiPrezzi.Data) AS MaxDiData
FROM NomiPrezzi
GROUP BY NomiPrezzi.Nome)))
Ciao Nicola
email: metti inwind al posto  di NOSPAM

"Nicola Ardito" <men...@NOSPAM.it> ha scritto nel messaggio
news:geya6.4977$dD2....@twister2.tin.it...
|
| SELECT NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
| FROM NomiPrezzi
| GROUP BY NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
| HAVING (((NomiPrezzi.Data) In (SELECT  Max(NomiPrezzi.Data) AS MaxDiData
| FROM NomiPrezzi
| GROUP BY NomiPrezzi.Nome)))
|
| Ciao Nicola
| email: metti inwind al posto  di NOSPAM
Nicola, i miei piů sinceri complimenti.
Grazie 1000
Giorgio
Ps: se hai tempo, ho postato una mio nuovo problema! Visto la tua
preparazione non sarebbe male se gli potessi dare un'occhiatina!!

 email: metti inwind al posto  di NOSPAM
Sicuro che funziona?
L'operatore In puo' fare riferimento anche a date *non massime* di altri
clienti.
Esempio: se la tabella NomiPrezzi fosse cosi' composta:
Giorgio    01/01/00    1000
Giorgio    31/01/00      800
Antonio   01/01/00     2000
la query ritornerebbe tutti e 2 i valori per il cliente Giorgio per via
della stessa data 01/01 di Antonio.
Non saprei come far ritornare un campo non di raggruppamento in una query di
raggruppamento in Access
Pensandola in SQL Standard utilizzerei un alias del tipo
Select Nome, Data, Prezzo
From NomiPrezzi AliasPrezzi
where Data = (Select Max(NomePrezzi.Data)
                      From NomiPrezzi
                      where NomiPrezzi.Nome = AliasPrezzi.Nome
Come posso tradurre in Access?
Ciao
Andrea


CUT
Hai ragione!!! Purtroppo gli esempi che uno si costruisce spesso se li crea
ad hoc.  ;-)
Comunque non ho mollato e nell'ipotesi che i dati siano quelli scritti sopra
sono arrivato a questa select che non sarà il massimo per la velocità ma
funziona
SELECT NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
FROM NomiPrezzi
GROUP BY NomiPrezzi.Nome, NomiPrezzi.Data, NomiPrezzi.Prezzo
HAVING ((([Nome] & CStr([data])) In (SELECT Nome & Cstr(Max([data])) FROM
Nomiprezzi GROUP BY NomiPrezzi.Nome)));
