Newsgroup: it.comp.appl.access
Titolo: Somme parziali in query access

Salve a tutti, vi spiego il mio problema...come da oggetto la mia intenzione è fare delle somme parziali in una query. La mia idea è creare un campo calcolato in cui mostro il totale parziale dei valori contenuti nella tabella, suddivisi per categorie.
 
per capirci:
 
CAT.1    CAT.2  VAL
chiave1    A    100
chiave1    A    100
chiave1    B    100
chiave2    A    200
chiave2    B    200
chiave2    B    200
chiave3    B    300
chiave3    C    300
chiave3    C    300
 
quello che voglio ottenere è:
 
CAT.1    CAT.2  VAL   TOT.
chiave1    A    100   ---
chiave1    A    100   200
 
chiave1    B    100   100
 
chiave2    A    200   200
 
chiave2    B    200   ---
chiave2    B    200   400
 
chiave3    B    300   300
 
chiave3    C    300   ---
chiave3    C    300   600
 
dove il criterio per la somma si basa su CAT.1 e CAT.2, sommo i valori di VAL. e il risultato si salva in TOT.! "---" rappresenta la cella vuota.
Spero di essere stato abbastanza chiaro :)

 cella vuota.
 
Manca un campo univoco (id, data ecc.) per determinare un
ordine, cioč quale sarebbe la riga con --- e quale la riga con
la somma in una categoria.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 


Intanto grazie per aver risposto! il mio campo univoco è la combinazione di CAT.1 e CAT.2, se noti bene insieme sono univoci...il mio è un esempio di cosa voglio ottenere, ossia un mio campo calcolato che sommi tutti i valori di VAL. che corrispondono ad una precisa combinazione di CAT.1 e CAT.2 e salvi il risultato in TOT, nell'ultima riga conteggiata e lasci le precendenti righe di TOT vuote...vorrei sapere come potrei riuscire ad ottenere questo risultato e se è possibile ovviamente :)

Il giorno venerdì 19 ottobre 2012 18:56:52 UTC+2, Riddick ha scritto:

Comunque il campo univoco ID c'è, la combinazione CAT.1 e CAT.2 è il criterio col quale devono essere sommati i valori! Ho sbagliato a dirti, il campo univoco è ID ma l'ho omesso per semplificare la spiegazione di cio che volevo :)

 spiegazione di cio che volevo :)
 
Senza ID invece di semplificarla hai impedito la soluzione. ;-)
La somma parziale standard con la somma in ogni riga (tutto in 1 riga):
 
DSum("Val";"Tabella";"Cat1='" & [Cat1] & "' And Cat2='" & [Cat2] & "' And ID 
<=" & [ID])
 
La cella vuota � un po' impegnativa e costa prestazione
se la tabella ha molti record (tutto in 1 riga):
 
iif([ID]=DMax("ID";"Tabella";"Cat1='" & [Cat1] & "' And Cat2='" & [Cat2] & 
"'");DSum("Val";"Tabella";"Cat1='" & [Cat1] & "' And Cat2='" & [Cat2] & "' 
And ID <=" & [ID]))
 
BTW Se veramente hai un campo con nome "Val" ti consiglio
di rinominarlo perch� Val() � una parola chiave di Access.


di rinominarlo perché Val() è una parola chiave di Access.
 
Perfetto!! Grazie 1000! In questo momento non posso provare questo codice ma appena lo provo ti farò certamente sapere :D!
No, i nomi che ho usato sono fittizi, i nomi reali sono ben distanti dall'essere parole chiave di Access.

Il giorno venerdì 19 ottobre 2012 18:56:52 UTC+2, Riddick ha scritto:

Ero troppo curioso e ho provato...davvero spettacolare, funziona alla perfezione :D :D :D il primo codice è la somma progressiva praticamente, il successivo è esattamente quello che fa al caso mio!! Ti ringrazio davvero tantissimo, hai capito subito quello che mi serviva e sei andato a colpo sicuro, GENIALE! ;)