Fare più calcoli eseguendo una sola volta la query

di il
3 risposte

Fare più calcoli eseguendo una sola volta la query

Buonasera,

scusate per il titolo poco specifico ma non sapevo come spiegare in breve la mia domanda:
Ho una query "principale" che fa diversi calcoli per ogni record, ognuno su un campo, per esempio da questa query (selezione) ottengo

ID - Nome Prodotto - Categoria - Costo - Quantità - Prezzo - Vendite - Guadagno - Vita residua alla scadenza

ora se volessi in un report ottenere:
a - Prezzo medio
b - Quantità totali di una categoria
c - Vita residua media...

Chiaramente posso fare una serie di DlookUp/DSum per fare i conti, ma questo significa ogni volta rilanciare la query, c'è un modo per farla eseguire una volta sola e fare tutti i conti necessari?

Grazie spero di essere stato chiaro

3 Risposte

  • Re: Fare più calcoli eseguendo una sola volta la query

    Per i punti a, c serve usare la funzione DAvg, leggi qui
    https://support.office.com/it-it/article/funzione-davg-c7270c5d-e3b9-4f26-9615-2133a277066d
    I risultati saranno 2 valori.

    Per il punto b, essendo relativo a ogni categoria dovrai impostare un'altra query (Query2) con Raggruppamento sul campo Categoria e Somma sul campo Quantità.
    Il risultato sarà un recordset di valori.

    È sufficiente impostare espressioni e Query2 facendo riferimento a Query1, senza necessariamente lanciare quest'ultima.
  • Re: Fare più calcoli eseguendo una sola volta la query

    Sì i diversi punti erano solo esemplificativi. Quindi il consiglio è fare una query "figlia" con espressioni DSum, DAvg ecc... e la query1 sarà eseguita una sola volta?

    Proverò e riporto
  • Re: Fare più calcoli eseguendo una sola volta la query

    I punti a, c vogliono sapere l'output di un solo valore, perciò serve la FUNZIONE.
    Il punto b vuole come output una serie di valori, quindi un recordset, quindi una nuova query (Query2).
    Non capisco la domanda "query1 sarà eseguita una volta sola"?
    Se la esegui essa si espliciterà come tale e tu vedrai il recordset di Query1.
    Se a te serve vedere il recordset di Query2, lo esegui. Query1 fa solo da "base dati" per Query2, ma Query1 non viene nemmeno eseguita.
Devi accedere o registrarti per scrivere nel forum
3 risposte