Newsgroup: it.comp.appl.access
Titolo: Calcolo monte ore ferie anni precedenti

Ho fatto una query che restituisce le ferie non maturate nei vari anni
(campo anno e campo quantità), quello che non riesco a fare è una
query che mi faccia la somma progressiva dei vari anni. esempio:
la query che ho fatto mi restituisce i parziali:
2003   10h
2004   15h
2005   22h
la query che non riesco a fare deve dare le ferie maturate non godute
cumulative ai seguenti anni:
2003   10h
2004   25h
2005   47h
qualche idea?


Fai una seconda query sulla base della tua prima con le somme.
In questa seconda query usa un campo calcolato:
DSum("CampoConLeSomme";"PrimaQuery";"Anno<=" & [Anno])
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it


Numero/somma incrementale nelle 
querywww.donkarl.com/it/?FAQ3.11



Mancava la parte più importante del messaggio:
Fai una seconda query sulla base della tua prima con le somme.
In questa seconda query usi un campo calcolato:
=DSum("CampoConSommaDiQuantità";"PrimaQuery";"Anno<=" & Anno)


 DSum("CampoConLeSomme";"PrimaQuery";"Anno<=" & [Anno])
Ovvero, con una sola query.
- Tabella t_Ferie con campi Anno e Ore
SELECT t_Ferie.Anno, t_Ferie.Ore, (Select Sum(Ore) From [t_Ferie] as X
Where [X].[Anno]<=[t_Ferie].[Anno]) AS ProgressivoOre FROM t_Ferie;
Bruno 

 Where [X].[Anno]<=[t_Ferie].[Anno]) AS ProgressivoOre FROM t_Ferie;
Sě, ma stai attento che purtroppo una sottoquery in Access
puo essere molto piů lento di due query separate. L'ho avuto
tante volte nella pratica.
-- 
cu


 tante volte nella pratica.
Non credo che, per il numero di record che esisteranno
in t_Ferie, la velocità possa costituire un problema.
Io poi aborro vedere Query e Macro elencate nella finestra
database, per cui le prime le eseguo in codice, le seconde
proprio non le costruisco.
Avendola ripulita delle ridondanti parentesi inserite dalla
griglia QBE:
SELECT t_Ferie.Anno, t_Ferie.Ore, (Select Sum(Ore) From t_Ferie as X
Where X.Anno<=t_Ferie.Anno) AS ProgressivoOre FROM t_Ferie;
Grazie comunque Karl per l'informazione.
Ciao
Bruno 

 Access FAQ:
www.donkarl.com/it
Grazie mille funziona perfettamente, se posso disturbarvi ancora, ho
un'altro problema riguardante i costi delle varie voci in busta paga:
nelle righe delle buste paga ho un menu a tendina con le varie voci,il
prezzo, ed una data variazione.
vorrei che la tendina mi mostrasse soltanto le voci dove la data
variazione ha un range valido per il campo della testata [perido
paga].
Un problema simile lo ho risolto facendo una query di raggruppamento
con filtro su data decrescente <= [datainmaschera] e visualizzazione
solo del primo record
SELECT TOP 1 T_K_aliquote.Contatore, T_K_aliquote.[Data variazione],
T_K_aliquote.[Ritenute previdenziali], T_K_aliquote.[Ritenute
assistenziali], T_K_aliquote.[I scaglione], T_K_aliquote.[I Da],
T_K_aliquote.[I A], T_K_aliquote.[II scaglione], T_K_aliquote.[II Da],
T_K_aliquote.[II A], T_K_aliquote.[III scaglione], T_K_aliquote.[III
Da], T_K_aliquote.[III A], T_K_aliquote.[IV scaglione], T_K_aliquote.
[IV Da], T_K_aliquote.[IV A], T_K_aliquote.[V scaglione], T_K_aliquote.
[V Da], T_K_aliquote.[V A], T_K_aliquote.[Deduzione base],
T_K_aliquote.[Deduzione lav dip], T_K_aliquote.[K deduzione],
T_K_aliquote.[K TFR], T_K_aliquote.[CTR L297]
FROM T_K_aliquote
WHERE (((T_K_aliquote.[Data variazione])<=[Forms]!
[M_buste_paga_testata]![Periodo paga]))
ORDER BY T_K_aliquote.[Data variazione] DESC;
Non posso usare questa tecnica perchè per ogni data variazione ci sono
diversi CODICI, e non sempre in quantità eguale.

 ha scritto nel messaggio
news:46601ec1$0$4797$4faf...@reader4.news.tin.it...

Ciao Bruno,
in genere si trova sempre il modo per evitare la subquery
----
SELECT t_Ferie.Anno, t_Ferie.Ore, Sum(t_Ferie_1.Ore) AS ProgressivoOre
FROM t_Ferie, t_Ferie AS t_Ferie_1
WHERE t_Ferie.Anno>= t_Ferie_1.Anno
GROUP BY t_Ferie.Anno, t_Ferie.Ore
ORDER BY t_Ferie.Anno;
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel messaggio
news:1180706807....@p77g2000hsh.googlegroups.com...





ma esiste un codice Aliquota ?
se sì allora puoi fare così
----
SELECT T_K_aliquote.*
FROM T_K_aliquote INNER JOIN
  (
   SELECT Codice,Max([Data variazione]) AS MaxDtVariazione
   FROM T_K_aliquote
   WHERE [Data variazione]<=[Forms]![M_buste_paga_testata]![Periodo paga]
   GROUP BY Codice
  ) AS T_K_aliquote_1
ON T_K_aliquote.Codice=T_K_aliquote_1.Codice
AND T_K_aliquote.[Data variazione] = T_K_aliquote_1.MaxDtVariazione


 ORDER BY t_Ferie.Anno;
Eh, ma tu sei un mago dell'SQL, io un semplice manovale...
Ne ho preso buona nota, grazie.
Ciao
Bruno