Newsgroup: it.comp.appl.access
Titolo: Dsum e criteri

Vorrei calcolare, in una query, la somma del campo "Ore" aggregato (credo si
dica cosi') in questo modo: "sommami tutte le ore che hanno lo stesso ID
(questo ID ragruppa il campo ore diviso per mese e per clienti)"
Sono riuscito nell'intento creando una nuova query, ma a me sembra un
artificio, dove questo viene calcolato, e poi ho rimettendo tutto insieme, e
anche in modalita' maschera (sempre con artifici...)
Grazie
Ciao
Beppe


          Che ci hai messo in quella query?
MAssimiliano
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Nella Query ci sono 4 tabelle:
+tabella01, con i campi:
-ID_cliente
-Nome Cliente
+tabella02
-ID_mese
-data abbonamento (che e' mensile)
-importo_abbonamento
+tabella03
- ID_data_intervento
-data intervento
+tabella04
-ID_personale
-nome_personale
-ore_di_intervento
Tutti gli ID sono collegati "1" - "infinito", il precedente con il seguente.
Si puo' calcolare la somma delle "ore_di_intervento" per "nome_personale"
avvenute nel mese, ovvero con stesso "ID_mese"?
Sono riuscito a ottenre questo usando una "query" intermedia dove ho
raggruppato alcuni campi (tra cui [nome_personale], ma non [ID_personale]) e
calcolato "Sum" solo su "ore_di_intervento", ma mi chiedevo se si puo' fare
con DSum e impostare "criteri" in qualche modo.


          Prova allora ad usare le subquery
Fai la tua query cosě:
Ci metti l'id di "partenza"
Select id_cliente,
Poi ci metti negli altri campi le subquery su questo modello
(select sum(ore_di_intervento) as TotOre from tabella04 where id_personale =
id_cliente)
Se č vero che questi sono i campi in relazione
e infine finisci la query di "partenza"
from tabella01
Grossomodo dovrebbe andare



Dalle subforms alle subquery... e io che credevo che esistesse una funzione
quasi magica da mettere nei "criteri" delle Dsum.
Grazie
Ciao
Beppe


          Il criterio è lo stesso.
Hai tagliato tutto e non ricordo i campi ma sostanzialmente dovrebbe essere
dsum("[tuocampo]";"tuatabella";"id_tuatabella = '" & id_tabUno)



Scusa per il taglio... ci stavo pensando proprio adesso che forse non tutti
usano outlook express per leggere le news dove tutta la corrispondenza del
tread e' messa in modalita' "nested".
Qui c'e' qualcosa di nuovo per me: l'uso di "&" (credo).
Fin'ora l'unico articolo che mi ha fatto capire un po' di piu' su Dsum e' il
seguente  
http://www.fabalou.com/access/Modules/domain_functions.asp


          Ok, il criterio per i campi numerici è "A = '" & B
Quello per i campi testuali invece
"A = '"& B & "'"
ciao


 "A = '"& B & "'"
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it


Karl su tutti i libri che ho consultato mi è stato sempre data questa
istruzione.
Non mi hanno mai spiegato la logica. Ti va di chiarirmela?
Tks


 Non mi hanno mai spiegato la logica. Ti va di chiarirmela?
Questo che risulta dall'espressione con & "'" ecc. č:
numero --> "NomeCampo = B"
testo --> "NomeCampo = 'B'"
Tutti questi criteri sia nelle funzioni D.. o per filtri o per
OpenForm/OpenReport ecc. devono essere formatato come
 un criterio WHERE di SQL. In SQL esiste la regola che un
testo dev'essere incluso nei apici. Cosě il motore del db (in un
MDB č JET) sa che si tratta di un testo fisso e non di una funzione,
una parole chiave o un numero, che vengono trattati diversamente.


...
...è meglio dire:
numero --> "NomeCampo = 123"
testo --> "NomeCampo = 'Pippo'"
perché certo prima l'espressione B viene valorizzata.


          Aspetta però, nel caso del testo è ok ma se volessimo tradurre il campo
numerico diventerebbe
"numero = " 123
E' qua che mi suona male.
Grazie



Ieri ho incontrato qui a Napoli Valerio Valentini, il tuo traduttore
ufficiale.
E' molto simpatico
