Somme su Report (Access 2013)

di Anonimizzato20986 il
6 risposte
Buongiorno,
ho bisogno di effettuare delle somme condizionate sul campo di una tabella per ottenere la valorizzazione di una cella in un report.
Le tabelle:

Laboratorio
-Id
-Nome(testo)
-qta_mese(numero)

Commesse
-Id
-Articolo(testo)
-qta(numero)
-id_laboratorio
-data_entrata(data)
-data_uscita(data)

Nel report ho creato una tabella dei mesi dell'anno (gennaio, febbraio, ecc.) ogni colonna è un mese e ogni riga è un laboratorio. Ora ogni cella (es. Lavanderia/Gennaio) deve restituire la somma delle quantità della merce data a gennaio, sommando i record del campo commesse.qta ogni volta che il mese di commesse.data_entrata è gennaio e l'id_laboratorio è uguale all'id della lavanderia.

Non sono un esperto di access, e non ho idea di come assegnare questo calcolo alle celle del report.
C'è qualche anima pia che ha un consiglio per me?

Grazie infinite

6 Risposte

  • Saskemoboba ha scritto:


    Laboratorio
    -Id-Nome(testo)
    -qta_mese(numero)
    Perchè hai un campo qta_mese nella tabella Laboratori (preferibilmente al plurale)?
  • Ciao e grazie per la risposta.
    sta ad indicare le quantità massime prodotte da quel laboratorio in un mese.
  • Io lavorerei prima con una query e poi farei poggiare il report sulla query. Le query con i calcoli non sono il mio forte, ma proviamo a ragionare per piccoli passi. Visualizzazione struttura query che include entrambe le tabelle:
    1. Per "filtrare" l'IDLaboratorio=Lavanderia per esempio 10, devi scrivere
    =10
    nel Criterio sotto il campo IDLaboratorio
    2. Per estrarre le commesse di gennaio, devi usare la funzione Month([data_entrata]) e usare il Criterio =1
    3. Poi dovresti cliccare in alto sul tasto Totali, lasciare Raggruppamento su tutti i campi e scegliere Somma sul campo qta

    Detto (rozzamente) così succede però che tu vai a considerare "tutti i gennaio" indipendentemente dall'Anno. Devi quindi destreggiarti con ulteriore criterio per filtrare un particolare Anno.
  • Ti ringrazio per il consiglio.
    dovrei effettuare una query per ogni mese... inoltre come ottengo un solo campo con la somma nel report?
  • Saskemoboba ha scritto:


    ...
    -data_entrata(data)
    ...
    deve restituire la somma delle quantità della merce data a gennaio, sommando i record del campo commesse.qta ogni volta che il mese di commesse.data_entrata è gennaio e l'id_laboratorio è uguale all'id della lavanderia.

    OsvaldoLaviosa ha scritto:


    ...
    2. Per estrarre le commesse di gennaio, devi usare la funzione Month([data_entrata]) e usare il Criterio =1
    ...
    Devi quindi destreggiarti con ulteriore criterio per filtrare un particolare Anno.
    Prendendo Mese ed Anno da qualche parte (immagino una maschera per l'immissione dei criteri di ricerca) sul campo data è meglio usare
    Between #mese/01/anno# AND #mese/ultimogiorno/anno#
    la differenza su molti record si nota (Microsoft Access: Queries - Criteria on calculated fields)
    L'ultimo giorno del mese si calcola mettendo a zero il giorno del mese successivo.
    Spiegazione supertelegrafica ma facilmente approfondibile con una ricerca sul web
  • Grazie mille a tutti!
    ho risolto aggiungendo i campi delle tabelle nel report tramite l'apposito pulsante, e così facendo sono riuscito a utilizzare le espressioni in "origine di controllo".
    =Somma(IIf(Month([data_entrata])=1;[qta];0))

    Grazie a tutti per le risposte!
Devi accedere o registrarti per scrivere nel forum
6 risposte