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

subtotale in form record continui

74 views
Skip to first unread message

mario rossi

unread,
Mar 21, 2022, 3:38:57 PM3/21/22
to
buongiorno a tutti, ho la necessità di avere un subtotale di un importo in euro ogni volta che termina una settimana

esempio

lunedì 21/03/2022 - 10,00 €
martedì 22/03/2022 - 15,00 €
sabato 26/03/2022 - 18,00 €
domenica 27/03/2022 - 13,00 €
totale numero settimana x importo 56,00 €

lunedì 28/03/2022 - 8,00 €
mercoledì 30/03/2022 - 2,00 €
domenica 03/04/2022 - 8,00 €
totale numero settimana x importo 18,00 €

pensavo di usare una sottomaschera e di raggruppare in qualche modo i record ma non so come precodere, qualcuno ha qualche idea?

mau...@gmail.com

unread,
Mar 21, 2022, 6:45:37 PM3/21/22
to
Ciao TmTu,
supponendo che tu abbia una tabella con i campi ID, GiornoSett, dData e Importo, potresti creare una query con la somma di Importo e il campo calcolato nSett (numero settimana ottenuto con la funzione DatePart):

SELECT DatePart("ww",[dData]) AS nSett, Sum(TotSettimana.[importo]) AS TotSett
FROM TotSettimana
GROUP BY DatePart("ww",[dData]);

Il risultato sarà la somma degli importi per numero di settimana:
nSett TotSett
13 43
14 23
15 8

BFS

unread,
Mar 22, 2022, 4:11:33 AM3/22/22
to
tabella entrate con

datap : data
importo: valuta
id: contatore


sql:

select a.datap, a.importo from(

SELECT Entrate.datap, Entrate.importo, Entrate.ID,
DatePart('ww',[datap],2) AS Sett
FROM Entrate
ORDER BY DatePart('ww',[datap],2), id

UNION select null, sum(importo),32, DatePart('ww',[datap],2) AS Sett
from entrate group by DatePart('ww',[datap],2)) as a

order by a.sett, a.id


risultato
https://i.imgur.com/fhxyIaU.png

BFS





--
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com

BFS

unread,
Mar 22, 2022, 4:14:59 AM3/22/22
to
Il 21/03/2022 23:45, mau...@gmail.com ha scritto:
> Il giorno lunedì 21 marzo 2022 alle 20:38:57 UTC+1 tmtu...@gmail.com ha scritto:
>> buongiorno a tutti, ho la necessità di avere un subtotale di un importo in euro ogni volta che termina una settimana
>>
>> esempio
>>
>> lunedì 21/03/2022 - 10,00 €
>> martedì 22/03/2022 - 15,00 €
>> sabato 26/03/2022 - 18,00 €
>> domenica 27/03/2022 - 13,00 €
>> totale numero settimana x importo 56,00 €
>>
>> lunedì 28/03/2022 - 8,00 €
>> mercoledì 30/03/2022 - 2,00 €
>> domenica 03/04/2022 - 8,00 €
>> totale numero settimana x importo 18,00 €
>>

>
> Il risultato sarà la somma degli importi per numero di settimana:
> nSett TotSett
> 13 43
> 14 23
> 15 8

che non coincidono con i suoi...
nella funzione datepart va impostato anche che giorno della settimana va
considerato come il primo

in italia, il lunedi quindi
DatePart("ww",[dData],2)

se lasci solo DatePart("ww",[dData]) viene considerata la domenica

mau...@gmail.com

unread,
Mar 22, 2022, 11:23:16 AM3/22/22
to
Vero! Grazie per aver controllato.

mario rossi

unread,
Mar 22, 2022, 2:50:43 PM3/22/22
to
ci provo grazie nel frattempo

mario rossi

unread,
Mar 22, 2022, 3:09:35 PM3/22/22
to
ho provato cosi ma aprendo la query mi esce il messaggio seguente: "immettere valore parametro a.idutente"
i campi della mia tabella sono questi
id, idutente, datastampa, orastampa, data, ora, importo, sf, descrizione


***CODICE SQL PROVATO***
SELECT a.idutente, a.datastampa, a.orastampa, a.data, a.ora, a.importo, a.sf, a.descrizione
FROM (SELECT log.data,log.importo,log.ID,
DatePart('ww',[data],2) AS Sett
FROM log
ORDER BY DatePart('ww',[data],2),id

UNION select null, sum(importo),32, DatePart('ww',[data],2) AS Sett
from log group by DatePart('ww',[data],2)) AS a
ORDER BY a.sett, a.id;



BFS

unread,
Mar 23, 2022, 2:13:55 AM3/23/22
to
ti da errore perchè hai una select per un campo idutente :
SELECT a.idutente

che lui si aspetta di trovare in

SELECT log.data,log.importo,log.ID,
DatePart('ww',[data],2) AS Sett

ma che invece non c'è

inoltre fai una union di due query che hanno un numero diverso di colonne



BFS


mario rossi

unread,
Mar 23, 2022, 6:30:43 AM3/23/22
to
ho modificato la query come segue ma non è esattamente lo stesso aspetto del tuo esempio, ho aggiunto anche una tabella per prelevare cognome e nome
ottengo però i 2 totali di due settimane in alto e gli altri record di seguito sotto, mentre il tuo esempio mostra i giorni poi totale settimana poi altri giorni e altro totale settimana
è un problema solo di ordinamento ma non so cosa modificare

**code sql**
SELECT utenti.Cognome, utenti.Nome, a.idutente, a.data, a.sf, a.descrizione, a.id, a.importo
FROM (SELECT log.idutente,log.importo,log.data,log.sf,log.descrizione,log.ID,
DatePart('ww',[data],2) AS Sett
FROM log
ORDER BY DatePart('ww',[data],2),id

UNION select null, sum(importo),32, DatePart('ww',[data],2),null,null,null AS Sett
from log group by DatePart('ww',[data],2)) AS a LEFT JOIN utenti ON a.idutente = utenti.ID
ORDER BY a.sett, a.id;

la query la apre e ottengo quanto segue

cognome-nome-idutente-data-sf-descrizione-id-importo
null-null-null-32-12-null-null-150
null-null-null-32-13-null-null-15
rossi-mario-7-18/03/2022-18-1-28-50€
rossi-mario-7-17/03/2022-19-1-29-50€
rossi-mario-7-16/03/2022-20-1-30-50€
rossi-mario-7-24/03/2022-10-1-20-10€
rossi-mario-7-23/03/2022-12-1-22-5€

mentre mi aspettavo
rossi-mario-7-16/03/2022-20-1-30-50€
rossi-mario-7-17/03/2022-19-1-29-50€
rossi-mario-7-18/03/2022-18-1-28-50€
null-null-null-32-12-null-null-150
rossi-mario-7-23/03/2022-12-1-22-5€
rossi-mario-7-24/03/2022-10-1-20-10€
null-null-null-32-13-null-null-15

cosa sbaglio?

mau...@gmail.com

unread,
Mar 23, 2022, 9:18:43 AM3/23/22
to
Prova a sostiuire la riga
UNION select null, sum(importo),32, DatePart('ww',[data],2),null,null,null AS Sett
con
UNION SELECT null, sum(importo), 32, null, null, null, DatePart('ww',[data],2) AS Sett

BFS

unread,
Mar 23, 2022, 9:36:58 AM3/23/22
to
che non stai unendo le colonne correttamente


sulla prima in terza posizione hai idutente
nella seconda in terza posizione hai 32

e cmq l'id serve solo per dare un ordine alle righe del mio esempio, nel
tuo caso non so cosa rappresenti. devi assicurarti di avere un valore
nella seconda che sia sempre maggiore della prima per poi poterle ordinare

studiati le query di unione

https://support.microsoft.com/en-us/office/use-a-union-query-to-combine-multiple-queries-into-a-single-result-1f772ec0-cc73-474d-ab10-ad0a75541c6e
Message has been deleted

mario rossi

unread,
Mar 29, 2022, 11:49:08 AM3/29/22
to
funziona grazie a tutti
0 new messages