Newsgroup: it.comp.appl.access
Titolo: Idee per Quey con Date

Ciao,
non riesco ad  impostare una query per calcolare i mesi di differenza
fra più campi.
Ho una tabella "Storico" nella quale, fra gli altri, ci sono i seguenti
campi :
NominativoData AssunzioneAlId retribuzioneData Variazione
Pippo01/06/2000 2501/06/2000
Il campo Al indica la data di fine rapporto nel caso il dipendente vada via.
Il  campo Id Retribuzione indica il tipo di retribuzione percepita (ho i
valori in un'altra tabella).
Il campo data variazione indica la data nella quale il dipendente abbia un
cambiamento nei 3 campi
 (Data Assunzione Assunzione, Al, e Id retribuzione)
Esempio il dipendente Pippo il 01/03/2001,
in seguito ad una promozione cambi il suo ID retribuzione,
nella  tabella Storico,inserisco un nuovo record :
NominativoData AssunzioneAlId retribuzioneData Variazione
Pippo01/06/2000 2601/03/2001
Ipotizziamo ora che Pippo , vada via il 30/06/2002, nuovo record :
NominativoData AssunzioneAlId retribuzioneData Variazione
Pippo01/06/200030/06/20022630/06/2002
Vorrei una query  che mi restituisca come risultato i mesi di permanenza di
Pippo nel suo Id Retribuzione  in periodi da me indicati.
Ad esempio nel periodo dal  01/01/2001 al 30/06/2001
Pippo ha trascorso 3 mesi nell' Id 25
                             e  3 mesi nell' Id 26
Altro periodo : dal 01/01/2002 al 31/12/2002
Pippo, ovviamente, ha trascorso 6 mesi nell' Id Retribuzione 26 .
Come posso impostare la query ?
Sinceramente, non capisco come far combaciare tutte le date che intervengono
:
la data assunzione;
eventuale data variazione Id retribuzione;
eventuale  data di cessazione del rapporto di lavoro;
le date che  debbo indicare per calcolare  in periodi .
Con alcune query da me create, mi scappa sempra qualcosa !
Spero di essere stato chiaro :)
grazie ciao.
p.s.
scusate l'html, ma le tabelle venivano troppo confuse  senza i riquadri.

cosě forse č + chiaro...scusate....
non riesco ad  impostare una query per calcolare i mesi di differenza
fra piů campi.


troppo difficile? impossibile?
qlc commento please!

 qlc commento please!
Impossibile? Proprio non dirrei.
Troppo difficile? Tenendo conto del tuo livello di conoscenza delle
problematiche informatiche, penso proprio di si; almeno io non ritengo
agevole fartelo realizzare con una chiacchierata sul NG.
C'è comunque anche un propblema di struttura dei dati: quando si progetta la
struttura dei dati in un database, non si può prescindere dalle informazioni
che si vogliono trarre manipolando i dati in esso contenuti; non sempre una
query o un codice VBA possono supplire ad una organizzazione di dati non
adeguata.
L'attuale struttura del tuo database la decidemmo insieme in base alle
esigenze elaborative che tu prospettasti a suo tempo: penso che, alla luce
degli ultimi tuoi messaggi quella struttura non sia più adeguata.
Ad esempio, nella tua tabella Storico c'è la decorrenza di una variazione
(DataVariazione) ma non esiste nulla che ti determina il periodo di
validità, ovvero una data che ti indichi sino a quando un certo dato è o è
stato valido.
E fino a qui poco male, visto che con una query di questo tipo puoi anche
calcolarti la data di fine validità:
SELECT Storico.*, DMin("DataVariazione","Storico","Matricola=" & Chr$(34) &
[Matricola] & Chr$(34) & " And DataVariazione>#" &
Format([DataVariazione],"mm/dd/yyyy") & "#")-1 AS FineValidità
FROM Storico;
Resta il fatto che non è indicato esplicitamente nella tabella Storico quale
è la variazione che è intervenuta rispetto alla situazione precedente; anche
questo può essere ricavato esplodendo tale tabella in tabelle transitorie e
di appoggio dove la singola variazione è meglio qualificata; comunque, anche
come effettuare questa esplosione di dati è funzione di come li vorrai
usare. Insomma, la logica vuole che si parta da dati disaggregati per poi
aggregarli in una situazione anagrafica complessiva e non viceversa.
Comunque forse per te la cosa migliore è crearti un ciclo lungo enne mesi
all'interno del quale effettuare dei computi al livello mensile, rilevando
dalla tabella Storico i dati validi per quel mese, quindi sommare i dati
risultanti dalla valorizzazione ottenuta per ogni mese.
Non me ne volere, ma l'informatica a certi livelli presuppone una
preparazione specifica di tipo professionale: ritengo che un esperto
informatico (all'interno o all'esterno della tua azienda) non avrà problemi
a realizzare ciò che ti serve. Non credo che delle dritte date in un NG
riescano a risolverti tutti i tuoi problemi; è un po' come se io ti
chiedessi di farmi diventare un eperto di gestione del personale solo
scambiandoci qualche messaggio sul NG: pensi che sarebbe possibile?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 scambiandoci qualche messaggio sul NG: pensi che sarebbe possibile?
Sicuramente sě :-)
Ciao. Claudio.

 scambiandoci qualche messaggio sul NG: pensi che sarebbe possibile?
Assolutamente, no.
Penso che la figura migliore sia quella a metà strada tra un amministrativo
ed un programmatore.
E' molto difficile (diretta conseguenza della iperlegislazione) che un
amministrativo riesca a spiegare ad un programmatore tutto che vorrebbe.
ciao.