Newsgroup: it.comp.appl.access
Titolo: trovare la data minima in una query senza aggregazione

ciao a tutti
ho creato una query con "TbCarichi"
dove ho necessita' di ricavare
la data minima per recordset del campo
"TbCarichi.DataC" senza aggregazione;
ho fatto:
 nDataC: DMin("DataC";"TbCarichi";"IdOrdine=" & [IdOrdine])
 
c'è un modo migliore?
grazie

> c'è un modo migliore?
 
Non so se migliore o no,
ma una ( forse l'unica ) alternativa la trovi qui
 
https://groups.google.com/forum/?hl=it#!topic/it.comp.appl.access/8pcHuFJ-75o
 
 
 
.
 

   nDataC: DMin("DataC";"TbCarichi";"IdOrdine=" & [IdOrdine])
 
Perché senza aggregazione? Per essere aggiornabile?
 
Mi ricordo vagamento a diversi discussioni, ma...
 
Se la funzionalità è importantissimo forse vale la pena di provare se 
diventa più veloce con un metodo diverso (e un po macchinoso ;-):
 
1. Crea una query che tira fuori l'id dei record con i valori minimi. Si 
puo farlo con una sottoquery nel WHERE (che fa l'aggregazione) e così 
rimanere aggiornabile.
 
2. Collega la query con il minimo con la query che finora hai usato come 
orgine record (usando un LEFT JOIN) e includi un campo della query con 
il minimo.
 
3. Nel criterio del FC ti riferisci a questo campo con: Not IsNull()
 
Se non riesci, devi scrivere i dettagli come l'origine record attuale, 
il nome della chiave primaria della TbCarichi ecc.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 


grazie Mancini


ciao Karl
 
questa è la query d'aggergazione
 
SELECT IdCarico, Min(DataC) AS nDataC
FROM TbCarichi
GROUP BY IdCarico;
 
 
GROUP BY IdCarico come diventa con Where
per trasformarla sin subquery?

 per trasformarla sin subquery?
 
 
SELECT IdCarico
FROM TbCarichi AS A
WHERE DataC =
  (SELECT Min(DataC)
   FROM TbCarichi AS B
   WHERE B.IdCarico = A.IdCarico)



ciao Karl
per quanto ho provato non ho il risultato sperato.
 
 
ora ho queste 2 query, ma ne serve ancora un'altra?
Qry_Carichi:
SELECT IdOrdine, IdCarico, IdFornitore, IdTrasportatore, DataC
FROM TbCarichi
ORDER BY IdCarico;
 
SQry_ValoreStandard:



 
Siccome non spiegi molto, posso solo indovinare che la prima sia 
l'origine dati della maschera dove vuoi evidenziare il valore minimo di 
DataC con la FC.
 
In questo caso passo 2. della mia descrizione sarebbe la nuova origine 
dati della maschera:
 
SELECT Qry_Carichi.*, SQry_ValoreStandard.IdCarico AS MinIdCarico
FROM Qry_Carichi LEFT JOIN SQry_ValoreStandard
ON Qry_Carichi.IdCarico = SQry_ValoreStandard.IdCarico
 
Passo 3. sarebbe questo criterio nella FC:
 
Espressione è  Not IsNull([MinIdCarico])



ciao Karl
hai perfettamente capito, anche se non ho ancora il risultato sperato;
ma mi hai dato un buon consiglio.
 
In questo modo pero' ho il problema quando devo eliminare un record,
selezione e tasto "Canc" della tastiera;
perchè, sembra venga eliminato, mentre
poi si ripresenta.
 
Perchè?
come posso risolvere?
 

 come posso risolvere?
 
Non lo so. Prova se puoi eliminare un record dalla query.


 Non lo so. Prova se puoi eliminare un record dalla query.
 
 
Ciao Karl
il problema è il left join,
mentre con l'inner join me lo fa cancellare.
Come posso fare?
 
 
 
 
il problema è lo join