Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Somma campo numerico

40 views
Skip to first unread message

Luciano Iosa

unread,
Sep 23, 2000, 3:00:00 AM9/23/00
to
Mi sto incavolando come una belva. Non riesco a fare una query che
calcoli il totale di un campo numerico di una tabella selezionando i
record.
Chi mi dice una procedura che funziona sicuro ?
Ho Access '97

Luciano

Roberto da casa

unread,
Sep 23, 2000, 3:00:00 AM9/23/00
to

"Luciano Iosa" <iosa...@flashnet.it> ha scritto nel messaggio
news:rm5qssg2dsokdua5g...@4ax.com...

Creati una query che contiene solo il campo sul quale fare la selezione ed
il campo da sommare.
Nella riga "Criteri:" del primo campo scrivi appunto i criteri di selezione.
Dal menu Visualizza scegli il comando "Totali"; nella riga "Formula:" del
primo campo scegli "Raggruppamento" e nella riga "Formula:" del secondo
campo scegli "Somma".

--
Roberto

---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


Lbo da casa

unread,
Sep 23, 2000, 8:30:20 PM9/23/00
to
>Mi sto incavolando come una belva. Non riesco a fare una query che
>calcoli il totale di un campo numerico di una tabella selezionando i
>record.

cosa intendi per "selezionando i record"?

comunque prova così: apri l'editor delle query (qbe). scegli la
visualizzazione sql. scrivi: select sum(nomecampo) from nometabella.


--

non studio non lavoro non guardo la tv
non vado al cinema non faccio sport

Luciano Iosa

unread,
Sep 24, 2000, 3:00:00 AM9/24/00
to
On Sat, 23 Sep 2000 21:16:12 GMT, "Roberto da casa"
<r.ma...@libero.it> wrote:
>
>Creati una query che contiene solo il campo sul quale fare la selezione ed
>il campo da sommare.
>Nella riga "Criteri:" del primo campo scrivi appunto i criteri di selezione.
>Dal menu Visualizza scegli il comando "Totali"; nella riga "Formula:" del
>primo campo scegli "Raggruppamento" e nella riga "Formula:" del secondo
>campo scegli "Somma".

Si, e' quello che avevo fatto, ma io voglio la somma per colonne non per
riga. Ti faccio il mio esempio. Nel mio dabase "Spese" ho il tipo
"telefono" con diverse causali "telecom, wind ,tele2". Nel nostro caso
ottengo le righe con i totali della spesa per Telecom, per Wind e per
Tele2. Io voglio anche il totale delle spese di tipo "Telefono"
Mi sono spiegato ? Si puo' fare con una query ?

Luciano

p.s. Sono nuovissimo del newsgroup (da ieri). Uso Access da un mese, ho
conoscenze di dabase relazionali un po' remote.


Luciano Iosa

unread,
Sep 24, 2000, 3:00:00 AM9/24/00
to
On Sun, 24 Sep 2000 00:30:20 GMT, l...@NOSPAM.blunet.it (Lbo da casa )
wrote:

>cosa intendi per "selezionando i record"?
>
>comunque prova così: apri l'editor delle query (qbe). scegli la
>visualizzazione sql. scrivi: select sum(nomecampo) from nometabella.

Forse la parola piu' esatta e' filtrare. Se segui il thread, spiego il
mio caso.

Luciano

Roberto da casa

unread,
Sep 24, 2000, 3:00:00 AM9/24/00
to

"Luciano Iosa" <iosa...@flashnet.it> ha scritto nel messaggio
news:cakssss6p692g49v1...@4ax.com...

Certo che si può fare, con una query unione.
Ammettiamo che la tabella Spese abbia una struttura simile:

Id
TipoSpesa
CausaleSpesa
Importo

creati una query di selezione (Query1) basata sulla tabella spese con la
quale selezioni solo i record da sommare, ma non deve fare alcun totale
(ovvere non deve essere una query di raggruppamento); ti consiglio questo
passaggio così puoi impostare i criteri come meglio desideri, al limite in
maniera parametrica.

A questo punto creati una query unione, basata su Query1 che ha il seguente
codice SQL:

SELECT Query1.TipoSpesa, Query1.CausaleSpesa, Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1
GROUP BY Query1.TipoSpesa, Query1.CausaleSpesa
UNION SELECT Query1.TipoSpesa, "ZZTotale Tipo Spesa" ,Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1
GROUP BY Query1.TipoSpesa;

Se poi con Query1 selezioni più di un tipo spesa e su Query2 ti serve anche
un totale generale, il codice SQL di Query2 sarà:

SELECT Query1.TipoSpesa, Query1.CausaleSpesa, Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1
GROUP BY Query1.TipoSpesa, Query1.CausaleSpesa
UNION SELECT Query1.TipoSpesa, "ZZTotale Tipo Spesa" ,Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1
GROUP BY Query1.TipoSpesa
UNION SELECT "ZZTOTALE", "GENERALE", Sum(Query1.Importo) AS SommaDiImporto
FROM Query1;

--
Roberto

---------------------------------------------


il sito comune di it.comp.appl.access:

http://members.xoom.it/it_db_access/
---------------------------------------------


Lbo da casa

unread,
Sep 24, 2000, 9:14:21 PM9/24/00
to
>Forse la parola piu' esatta e' filtrare. Se segui il thread, spiego il
>mio caso.

non ho capito bene com'è fatta la tua tabella. posta qualche riga di
esempio.

Luciano Iosa

unread,
Sep 25, 2000, 3:00:00 AM9/25/00
to

Uhmmm..., ho fatto come dici, ho costruito la query di unione con il
codice SQL, l'ho eseguita, ma nel campo accanto al "ZZTotale Tipo Spesa"
non compare nessun numero. Perche' mi chiede "Tipo", "Causale",
"Importo" (?) poi non lo so. Non sapevo che fosse cosi' complicato.
Con Superbase, un vecchio programma che girava su Amiga, si faceva
facilmente.

Luciano

Roberto dal portatile

unread,
Sep 25, 2000, 3:00:00 AM9/25/00
to

"Luciano Iosa" <iosa...@flashnet.it> ha scritto nel messaggio
news:n2iusskhng6cmmbjf...@4ax.com...

Il problema ce l'hai su Query1, che deve esistere ma di cui non abbiamo
parlato come farla, essendo una normale query di selezione; aprila e vedi se
ti mostra i record che ti apetti di vedere.
Quanto alla complessità, è tu che hai chiesto di farlo con una query; se lo
fai con un report sarà sicuramente più facile.
--

Roberto

---------------------------------------------


il sito comune di it.comp.appl.access:

http://members.xoom.it/it_db_access/
---------------------------------------------


Luciano Iosa

unread,
Sep 26, 2000, 3:00:00 AM9/26/00
to
On Mon, 25 Sep 2000 01:14:21 GMT, l...@NOSPAM.blunet.it (Lbo da casa )
wrote:

>>Forse la parola piu' esatta e' filtrare. Se segui il thread, spiego il


>>mio caso.
>
>non ho capito bene com'è fatta la tua tabella. posta qualche riga di
>esempio.

Ho una tabella Spese, con campi, ID, TipoSpese, CausaleSpese, Importo
Voglio avere la somma delle spese per Tipo. In realta' avrei anche il
campo AnnoSpese ma per ora non lo considero.

Luciano

Luciano Iosa

unread,
Sep 26, 2000, 3:00:00 AM9/26/00
to
On Mon, 25 Sep 2000 17:46:46 GMT, "Roberto dal portatile"
<r.ma...@libero.it> wrote:

>Il problema ce l'hai su Query1, che deve esistere ma di cui non abbiamo
>parlato come farla, essendo una normale query di selezione; aprila e vedi se
>ti mostra i record che ti apetti di vedere.
>Quanto alla complessità, è tu che hai chiesto di farlo con una query; se lo
>fai con un report sarà sicuramente più facile.

Invece poi ha funzionato mettendo i giusti nomi ai campi. Ho provato ad
inserire anche il campo "anno" della mia tabella ma non mi viene il
codice SQL. Ho scoperto l'opzione "maschere - autocomposizione tabella
pivot" ed ho visto che e' il modo piu' semplice per fare quello che
volevo. In pratica si usa Excel. Ho costruito questa tabella partendo
proprio da fogli Excel, divisi per anno.
A questo proposito ho ancora due problemi. Nella tabella "spese" ho tre
campi per la data, anno, mese, giorno. Anno e giorno sono numerici,
mentre mese e' di testo, nell'ordinamemnto per mese si ha "aprile" come
primo mese e cosi' via. Come si fa ad ovviare, in Excel c'era un metodo.
Secondo, quando ho importato il primo foglio ho cancellato le prime 3
righe di intestazione ed e' successo che il mio primo record ha Id=4.
Non esiste una funzione di reindicizzazione che lo riporti ad 1.
Mi scuso se sono stato lungo.

Luciano

Lbo da casa

unread,
Sep 26, 2000, 3:00:00 AM9/26/00
to
>Ho una tabella Spese, con campi, ID, TipoSpese, CausaleSpese, Importo
>Voglio avere la somma delle spese per Tipo. In realta' avrei anche il
>campo AnnoSpese ma per ora non lo considero.

select TipoSpese, sum(Importo) as SommaSpese group by TipoSpese

copia, apri una nuova query, vai in visualizzazione sql e incolla.

per l'anno:

select AnnoSpese, TipoSpese, sum(Importo) as SommaSpese group by
AnnoSpese, TipoSpese

Roberto dal portatile

unread,
Sep 26, 2000, 3:00:00 AM9/26/00
to

"Luciano Iosa" <iosa...@flashnet.it> ha scritto nel messaggio
news:r8t0tskojs2isb2o1...@4ax.com...

Fermo restando che il campo Anno lo devi mettere anche in Query1, poichè
ritengo che tu voglia anche il totale per anno, il codice SQL di Query2
diventa:

SELECT Query1.Anno, Query1.TipoSpesa, Query1.CausaleSpesa,


Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1

GROUP BY Query1.Anno, Query1.TipoSpesa, Query1.CausaleSpesa
UNION SELECT Query1.Anno, Query1.TipoSpesa, "ZZTotale Tipo Spesa"


,Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1

GROUP BY Query1.Anno, Query1.TipoSpesa
UNION SELECT Query1.Anno, "ZZTotale", "ZZAnno" ,Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1
GROUP BY Query1.Anno
UNION SELECT "ZZTOTALE", "GENERALE", " ", Sum(Query1.Importo) AS
SommaDiImporto
FROM Query1;

Se comunque hai trovato un'altro metodo e funziona, decidi tu.

Per quelle che sono le mie cognizioni di Access, per il quesito
sull'ordinamento, secondo me devi crearti un campo nel quale ti calcoli il
mese in cifre partendo da quello in lettere.

Di più non so, ma una cosa la so di sicuro: con Access si gestisce un
database con Excell si gestisce un foglio di calcolo, e poi so anche che un
database relazionale non è un foglio di calcolo evoluto.
Se permetti un consiglio, devi prima decedere se hai necessità di un
database per risolvere i tuoi problemi o hai necessità di un foglio di
calcolo; se ritieni che hai bisogno di un database relazionale allora penso
che dei fogli Exell ti devi ricordare solamente perchè da e verso di loro
puoi importare ed esportare dati.
--

Roberto

---------------------------------------------


il sito comune di it.comp.appl.access:

http://members.xoom.it/it_db_access/
---------------------------------------------

Luciano Iosa

unread,
Sep 27, 2000, 3:00:00 AM9/27/00
to

In realta' sto facendo l'autodidatta per conoscere Access e vedere le
sue potenzialita'. Sto vedendo che per le mie semplici necessita' anche
Excel puo' soddisfare le mie esigenze. Il codice SQL che mi hai pasato
va bene.
Mi sei stato molto utile.
Grazie
Luciano


Roberto dal portatile

unread,
Sep 27, 2000, 3:00:00 AM9/27/00
to

"Luciano Iosa" <iosa...@flashnet.it> ha scritto nel messaggio
news:ktf4ts4bpc8vqj6dq...@4ax.com...

Ciao alla prossima

0 new messages