Newsgroup: it.comp.appl.access
Titolo: [Access97] 1° mex: siate buoni.

Semplicissimo: query di selelezione 'Query' con 1 solo campo 'DataValuta',
eseguo, risultato 'n' record.
Ora ho bisogno di aggiungere un campo 'Giorni' che mi dica la differenza in
giorni tra il campo 'DataValuta' e lo stesso campo del record precedente.
Conosco il datediff, ma come faccio a fargli prendere la data del rec.
precedente?
--
Grazie
SALUTI
CODY

 wrote in message news:8uh90p$q3p$1...@serv1.albacom.net...

secondo me, semplicemente non puoi. per lo meno io non ci sono riuscito (e
ho tentato !!).  :-(
da codice puoi farlo.
ciao
frolix8


Ipotizzando che la tabella che contiene i dati si chiami Tabella1, creati
una query che DEVI chiamare Query1 e che deve avere il sequente codice SQL:
SELECT Tabella1.DataValuta, DCount("DataValuta","Query1","DataValuta<=#" &
[DataValuta] & "#") AS A,
IIf([A]=1,0,[DataValuta]-DLookUp("DataValuta","Query1","A=" & [A]-1)) AS
Giorni
FROM Tabella1
ORDER BY Tabella1.Data1;
Si presuppone che non ci siano due date uguali.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 ha scritto nel messaggio
news:J9YO5.30815$BF.10...@news.infostrada.it...

Scusami ho commesso un errore; il codice SQL giusto č:
SELECT Tabella1.DataValuta, DCount("DataValuta","Query1","DataValuta<=#" &
[DataValuta] & "#") AS A,
IIf([A]=1,0,[DataValuta]-DLookUp("DataValuta","Query1","A=" & [A]-1)) AS
Giorni
FROM Tabella1
ORDER BY Tabella1.DataValuta;


Caro Roberto,
    sei un vero drago, era un mese che ci pensavo sopra e non riuscivo a
trovare un algoritmo... poi arrivi tu e ZAC! risolvi. Complimenti.
    La query così va benissimo, ma ho un problemino proprio sulla data: in
realtà sulla tabella, il tipo dati del campo 'DataValuta' NON è data, ma
stringa di 8 chr.
    Ovviamente quindi il calcolo del campo Giorni non funziona; ho provato
il con Format, ma non riesco a farlo funzionare.
    Il campo DataValuta contiene la data in formato "GGMMAAAA" senza altri
caratteri e se nel format uso come formato "gg/mm/aaaa", mi restituisce una
data assurda che non ha niente a che vedere con quella vera; la notazione
inglese invece "dd/mm/yyyy" non la capisce proprio.
    Forse non è il format che debbo usare per convertire il testo in data o
forse non so usarlo io. Indicazioni?
P.S.: Ovviamente non posso portare il tipo dati del campo DataValuta da
testo a data. :-(
--
Grazie.
SALUTI
CODY

 da codice puoi farlo.
Della serie "non si finisce mai di imparare", leggi le risposte di Roberto
al mio mex.
--
Grazie
SALUTI
CODY

 ha scritto nel messaggio
news:8uogif$k46$1...@serv1.albacom.net...

In Query1 converti DataValuta da testo a data/ora in un campo calcolato di
nome "b", e su quest'ultimo calcola il campo Giorni; il codice SQL di Query1
diventa:
SELECT Tabella1.DataValuta,
DateSerial(Val(Right([DataValuta],4)),Val(Mid([DataValuta],3,2)),Val(Left([D
ataValuta],2))) AS b, DCount("b","Query1","b<=#" & [b] & "#") AS A,
IIf([A]=1,0,[b]-DLookUp("b","Query1","A=" & [A]-1)) AS Giorni
FROM Tabella1
ORDER BY
DateSerial(Val(Right([DataValuta],4)),Val(Mid([DataValuta],3,2)),Val(Left([D
ataValuta],2)));
