Newsgroup: it.comp.appl.access
Titolo: Funzione MAX

Ciao a tutti,
  sono un modesto utilizzatore di access e data la mia ignoranza nell’utilizzo
di questo programma, chiedo un cortese aiuto da voi esperti circa un
problema sul quale da giorni mi rodo il cervello.
Ho un piccolo db con 2 semplici tabelle:
1) presenze personale (campi:nome dipendente;dataora entrata;dataora uscita)
2) Mansioni personale(campi:nome dipendente;datainiziolavori;datafinelavori)
Sto cercando di fare una query con i campi “nome dipendente” e un campo
calcolato che riporti per ciascun dipendente il valore più alto tra “dataora
entrata” e “datainiziolavori”.Ho provato a utilizzare in svariati modi la
funzione “Max” ma l’unico risultato che sono riuscito a ottenere è stato un
“-1” che non ho idea cosa voglia significare.
Ho anche provato la funzione “iif” combinata con “datediff” che funziona ma
che in una situazione appena complessa diventa ingestibile (diventa
un’espressione di svariati km facilmente sbagliabile).
Potete cortesemente suggerirmi l’espressione da utilizzare nel capo che
voglio creare o se forse devo fare in qualche altro modo?
Grazie
Alessandro
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
iao,
Max


 "-1" che non ho idea cosa voglia significare.
-1 e' un VERO logico. Non capisco la struttura del tuo database (cosa
contengono le tabelle, in particolare la prima? Una riga per
dipendente o le timbrature quotidiane?)
Nel primo caso prova con
SELECT [Presenze personale].[Nome dipendente], MAX([Mansioni
personale].[datainiziolavori],[dataoraentrata]) as DATA FROM
[Presenze personale] INNER JOIN [Mansioni personale] ON [Presenze
personale].[nome dipendente]=[Mansioni personale].[nome dipendente]
Altrimenti dovresti spiegare cosa ti proponi di ottenere...
cia'
Max

 ha scritto nel messaggio 
news:87Z16Z89Z133Y1...@usenet.libero.it...

Ciao Alessandro
se vuoi aggiungere un campo calcolato nella query puoi fare così:
ritardoiniziolavori: DateDiff("n";[dataoraentrata];[datainiziolavori])
guarda help per datediff.
Inoltre sarebbe meglio che i nomi dei campi e tabelle non contengano spazi.
Daniele 


Ciao Ragazzi,
 volevo inanzitutto ringraziarvi per la disponibilità dimostrata.
In realtà il database è un po più complesso e io ho cercato di semplificare
per cercare di rendere più semplice il tutto e disturbare il meno possibile.
il mio dubbio era se con una query con campi ad esempio:
Testo (con nome dipendente)
campo data/ora 1
campo data/ora 2
campo data/ora 3
campo data/ora 4
esempio
Mario Rossi 12/03/2007 08:25 12/03/2007 08:15 12/03/2007 08:20 12/03/2007
08:00
Mario Bianchi 12/03/2007 08:20 12/03/2007 08:45 12/03/2007 08:30 12/03/2007
08:25
io potessi aggiungere un campo ulteriore che mi riportasse la data/ora +
recente delle (per esempio 4) degli altri campi e cioè farla diventare:
Mario Rossi 12/03/2007 08:25 12/03/2007 08:15 12/03/2007 08:20 12/03/2007
08:00 12/03/2007 08:25 (nuovo campo)
Mario Bianchi 12/03/2007 08:20 12/03/2007 08:45 12/03/2007 08:30 12/03/2007
08:25 12/03/2007 08:45 (nuovo campo)
Usando "datediff" funziona ma la formula se i campi fossero 10 sarebbe lunga
un km
Spero questa volta di essere stato più chiaro, mi scuso per il disturbo,e
magari di poter ricambiare la vostra gentilezza in futuro


 campo data/ora 4
...ribaltare il tutto in modo da avere tutte le date in un unico
campo?
Mario Rossi    Entrata        1/1/2000
Mario Rossi    Inizio lavori   2/1/2000
Mario Rossi    Fine incarico 3/1/2000
Aldo Bianchi   Entrata        1/1/2000
Aldo Bianchi   Uscita         3/1/2000
Cosi' hai anche 1/100 dei problemi se improvvisamente ti trovi a dover
gestire un nuovo evento (con la tua struttura, dovresti modificare la
tabella... tutte le query... tutte le form...),e quando hai bisogno di
tutte le date su una riga sola, le tiri fuori con una semplice
pivot....
L'ho provato sulla mia pelle anni fa... gestivo le qualifiche di un
certo numero di persone "in riga"... poi improvvisamente mi hanno
detto "dobbiamo anche gestire gli operatori DAE", e io mi sono sparato
un colpo :D
Ne ho approfittato per girare in verticale la tabella delle
qualifiche... cosi' quando mi hanno detto "dobbiamo gestire gli
istruttori DAE" me la sono cavata in 10 minuti :D
cia'
Max


Ciao Max,
 grazie del suggerimento ora mi studio qualcosa per farlo,purtroppo la
compilazione delle tabelle avviene in automatico con un programma che č
flessibile 0 perň magari combinando query access e/o excel mi ricreo alcune
tabelle parallele piů funzionali con i criteri che mi hai suggerito.
Sinceramente pensavo che su Access esistesse una funzione Max o min che si
comportasse in stile excel.
Spero di non averti fatto perdere troppo tempo.
Per esperienza comunque ti dico che anche io cerco sempre di fare le cose
piů flessibili possibili,da me le cose cambiano di continuo e ogni volta
devo tirare via qualcosa dal cilindro....il bello č che mi occupo di
controllo di gestione e non sono un informatico :)
Ciao


 Spero di non averti fatto perdere troppo tempo.
Oh, figurati, stavo fingendo di lavorare e il capo non mi ha beccato,
quindi... :D
cia'
Max

 Max
Ciao,
Max