Newsgroup: it.comp.appl.access
Titolo: Query per revisioni...

Salve!
vorrei gestire le revisioni delle offerte...
ho pensato di creare 2 tabelle
tbOfferte
Of_ID (K)
Of_Data
...
tbRevisioni
Rv_Of_ID
Rv_Data
Rv_Numero
Rv_Desc
in una maschera vorrei visualizzare l'offerta e la sua relativa ULTIMA
revisione...
Praticamente...
tbOfferte
040001,10/10/04..
tbRevisioni
040001,10/11/04,00,prima desc
040001,15/11/04,01,seconda desc
040001,20/11/04,02,terza desc
Nella maschera vorrei visualizzare:
Offerta: 040001,10/10/04
Revisione: 02,20/11/04,3333
ho cercato di creare una query ma mi riesce usando solo il campo Rv_Nemero
con la funzione MAX...
appena aggiungo i campi Rv_Data e Rv_DESC mi seleziona tutti i record..
mi date una mano?
... e cmq, è questo un modo per gestire le revisioni di un'offerta?
mi date qualche spunto?
Grazie a tutti!

 ha scritto nel messaggio
news:UHBHc.21262$tP4.8...@news4.tin.it...

Prova ad usare le funzioni di aggragazione sui dominii DLast o DMax (vedi
help).
In alternativa creati una maschera che abbia come origine record tbOfferte e
che contenga anche una sottomaschera che abbia come origine record una query
parametrica selezionata in base a Of_ID, ordinata in maniera decrescete per
Rv_Data e per la quale chiedi di vedere solo il primo record.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Gentilissimo come sempre!
Provo a fare come mi hai detto ma con  l'alternativa che mi hai proposto,
qualora si verificassero 2 revisioni nelle stesso giorno, potrei avere
problemi?  quale sarebbe la prima in ordine decrescente in quel caso?
SELECT tbOfferte.OF_ID, tbOfferte.OF_DATA_A, Max(tbRevisioni.OR_REV) AS
UltimaRev
FROM tbOfferte INNER JOIN tbRevisioni ON tbOfferte.OF_ID = tbRevisioni.OR_ID
GROUP BY tbOfferte.OF_ID, tbOfferte.OF_DATA_A;
...Quella che leggi sopra è perfetta
... il problema è quando ci aggiungo il campo RV_DATA ed RV_DESC... :(
GRAZIE ROBERTO!

 ha scritto nel messaggio
news:GATHc.15958$tj3.7...@news3.tin.it...

Per distinguere le varie revisioni di un'offerta effettuate nella stessa
data usa Rv_Numero; comunque non ti avevo detto di usare una query di
raggruppamento (che ti creerebbe qualche difficoltà per visualizzare i campi
della tabella tbRevisioni per i quali non reggruppi), ma di usare una query
di selezione parametrica.
Se la maschera che ha come origine record la tabella tbOfferte si chiama
formOfferte.
Se tale naschera contiene due caselle di testo chiamate Of_ID e Of_Data
associate ai di due campi di tbOfferte che hanno il loro stesso nome.
Nella maschera formOfferte inserisci anche una sottomaschera che abbia come
origine record una query che abbia il seguente codice SQL:
SELECT TOP 1 tbRevisioni.Rv_ID, tbRevisioni.Rv_Of_ID, tbRevisioni.Rv_Data,
tbRevisioni.Rv_Numero, tbRevisioni.Rv_Desc
FROM tbRevisioni
WHERE (((tbRevisioni.Rv_Of_ID)=[Forms]![formOfferte]![Of_ID]))
ORDER BY tbRevisioni.Rv_Data DESC , tbRevisioni.Rv_Numero DESC;
Così facendo nella maschera principale vedrai i dati identificativi
dell'offerta, mentre nella sottomaschera vedrai solo i dati della sua ultima
revisione.


...

...
... adesso è tutto chiaro!
Ciao Roberto e grazie ancora!