Newsgroup: it.comp.appl.access
Titolo: Consiglio in contabilità.........

Salve a tutti!
Vorrei, cortesemente, sapere su quale soluzione devo concentrarmi per
risolvere il problema di quanto appresso espongo:
Ho una tabella che ho chiamato "servizio" ed ho necessità di effettuare una
piccola contabilitaà, diciamo così, mensile.
Ipotizziamo che mi necessita sapere, ad esempio, quante ore di lavoro
festivo, notturno e quante reperibilità ha effettuato un dipendente.
Per chiarire, da subito, le idee agli amici, i campi sono così strutturati:
IDdipendente - chiave primaria;
datalavoro - campo data;
OreNotturne - campo numerico;
OreFestive - campo numerico;
TurnoReperibilità - campo Sì/No
Dov'è il problema? semplice:
Creo una query dove dico che in un determinato intervallo di data voglio
sapere, per ogni dipendente, quante ore di festivo ha effettuato (somma),
quante ore di notturne (somma) e quante reperibilità ha eseguito
(conteggio).
Ebbene, la query non mi evidenzia TUTTI i dipendenti e nemmeno tutti i dati
"positivi". Insomma la query va "in palle".
Mi spiego meglio:
se mi limito a sapere le ore notturne mi da il giusto risultato ma appena
inserisco un altro campo, in questo caso, le ore festive, mi da solo i
dipendenti che hanno effettuato le ore festive e quelli precedenti che hanno
effettuato le ore notturne non me li visualizza/conteggia più. Se poi
aggiungo le ore di reperibilità effettuate, nel caso NESSUNO le avesse mai
effettuate, mi da NULLA.
Come mai? è il caso di eseguire una query per volta? cioè eseguire una query
per le ore notturne, una query per le ore festive ed un'altra per il
servizio di reperibilità? quindi non posso creare un report a mò di
"tabellone" ove viene, automaticamente, tutto riportato? datemi una giusta
dritta.
(Saluto il caro Fabrizio col quale, per questione di tempo, non abbiamo
avuto modo di capirci al meglio)
Grazie anticipatamente.
Marco.

 avuto modo di capirci al meglio)
    Non e' una bella cosa dare sempre la colpa agli altri. Al tempo, in
questo caso.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:a8Tb9.32948$ub2.5...@news1.tin.it...

Devi gestire i campi con valori nulli (vuoti).
Per esempio anzichè usare la colonna [OreFestivi]
scrivi: Festivi: NZ([OreFestivi];0)
In questo caso qualora [oreFestivi] avesse dei record nulli, restituirebbe
comunque un valore.
Leggiti nella guida la funzione interna NZ.
Ciao, Carlo

 ha scritto nel messaggio
news:akpkht$1jm6ql$1...@ID-52090.news.dfncis.de...

Esimio Maurizio,
innanzitutto voglio ringraziarti per la squisita attenzione che mi hai
rivolto (non so dove hai trovato il tempo per scrivere tutta 'sta roba).
Non pensavo di aver "postato" un grande problemone. Non pensavo che fosse
così importante se un campo numerico sia lungo, corto, stretto ecc. :-)) -
scherzi a parte -
Non ho voluto dare ASSOLUTAMENTE la colpa a nessuno. Il "caro" Fabrizio è
partito per le vacanze e, diciamo così, la risoluzione al problema è
temporaneamente rimandata salvo qualche altra anima pia a volersene
occupare.
Allora, torniamo al "tormentone".
Eccoti la query in codice SQL
________________________________
SELECT dipendenti.COGNOME, Sum(servizio.notturno) AS SommaDinotturno,
Count(servizio.reper) AS ConteggioDireper
FROM qualifiche INNER JOIN (dipendenti LEFT JOIN servizio ON
dipendenti.IDdipendente = servizio.iddipendente) ON 
qualifiche.id
 =
dipendenti.qualifica
WHERE (((servizio.data) Between #8/1/2002# And #8/31/2002#) AND
((servizio.reper)=Yes))
GROUP BY dipendenti.COGNOME;
_________________________________
Già così, chi ha effettuato ore notturne, la query restituisce solo i valori
ha chi fa effettuato reperibilità ingnorando quelli che hanno effetuato ore
notturne, festive e anche quelli "assenti", cioè, con dati "0".
I campi di tipo "numerico" sono interi.
Grazia ancora.
Marco.

 ha scritto nel
messaggio news:0cZb9.43712$pX1.1...@news2.tin.it...

Ciao Carlo,
purtroppo il tuo gradito suggerimento non è servito. Il problema persiste,
non cambia nulla.
Mi visualizza sempre e solo i dipendenti che hanno effettuato la
reperibilità omettendo la visualizzazione di chi ha fatto ore notturne ecc.
questo è il codice (senza NZ perchè è la stessa cosa):
____________________________________________
SELECT dipendenti.COGNOME, Sum(servizio.notturno) AS SommaDinotturno,
Count(servizio.reper) AS ConteggioDireper
FROM qualifiche INNER JOIN (dipendenti LEFT JOIN servizio ON
dipendenti.IDdipendente = servizio.iddipendente) ON 
qualifiche.id
 =
dipendenti.qualifica
WHERE (((servizio.data) Between #8/1/2002# And #8/31/2002#) AND
((servizio.reper)=Yes))
GROUP BY dipendenti.COGNOME;
___________________________________________
Grazie Carlo.
Marco.

 I campi di tipo "numerico" sono interi.
    Prima di tutto fai sparire ogni riferimento alla tabella "qualifiche",
poi se ne puo' riparlare!...


 Marco.
Hai provato ad scrivere la clausola WHERE in questa maniera:
WHERE ((servizio.data) Between #8/1/2002# And #8/31/2002#)
In effetti a cosa ti serve inserire nei criteri di ricerca la reperibilità?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 In effetti a cosa ti serve inserire nei criteri di ricerca la reperibilità?
se non lo mette gli sballa il conteggio. 
cmq secondo me ha un problema con i null
--
a.cara

Grazie a tutti per l'attenzione!
Un saluto particolare a Roberto che, credo sia "in convalescenza" in
campagna che gli farà sicuramente bene!
L'attento CarloCosAntonio ha brillantemente capito il problema ed
egragiamente risolto con il semplice fatto che, non devo raggruppare nessun
dato in nessuna query ma è una semplice questione di gestione report perchè
in effetti basta nascondere, nel corpo del report, tutti i dati e al suo piè
di pagina effettuare qualsiasi somma e/o conteggio anche con la funzione
DCount.
In pratica era quello che mi serviva: Un tabellone finale!
Grazie, di nuovo, a tutti per la cortese attenzione e validissimo aiuto!
Marco.