Calcolo nella query

di il
16 risposte

Calcolo nella query

Salve,
ho una query di selezione che mi evidenzia i record aventi lo stesso prodotto.
Orbene desidero sommare tutti i valori numerici della colonna COSTO.
Come devo procedere?
Grazie per la risposta

16 Risposte

  • Re: Calcolo nella query

    Salve, silene;
    vediamo se riesco ad aiutarTi; abbiamo una Tabella con n campi, tra i quali [Prodotto] e [Costo].
    Per ottenere la somma dei costi relativi allo stesso [Prodotto], in ACCESS 2000, farei:

    Query di selezione con i campi; [Prodotto] e [Costo].

    Nel campo [Prodotto]:
    1) Campo: [Prodotto]
    2) Tabella: nomeTuatabella
    3 Formula: raggruppamento
    4) Criteri:
    
    Like [Forms]![Tuatabella]![Prodotto]
    
    Nel campo [Costo]:
    1) Campo: [Costo]
    2) Tabella: nomeTuatabella
    3 Formula: Somma (scegli Somma dal menù a tendina)
    4) Criteri:

    Eseguendo la Query dovresti avere due campi; [Prodotto] e la somma dei relativi Costi.
    Nel caso in cui Tu voglia avere l'elenco di tutti i Prodotti con i relativi totali, basterà togliere il criterio di selezione del campo [Prodotto]

    Per la selezione dei Prodotti, potrebbe essere utile leggere la discussione aperta da "morangel" a proposito di: "Richiamare dati da un menù a tendina" (relativamente solo alla definizione della Query).

    Mi auguro di aver interpretato correttamente la Tua richiesta, comunque sono a disposizione.

    Buona giornata e buon lavoro.
  • Re: Calcolo nella query

    Ciao Giuseppe,
    La tabella principale riporta il campo ENTRATE, il campo USCITE,il campo SPECIFICA ENTRATE e il campo SPECIFICA USCITE.
    Creo poi una form dalla tabella e con due combox popolo le specifiche di entrata e uscita(queste specifiche sono in tutto una ventina). Creo infine una query di selezione.
    A questo punto il problema è quello di poter estrarre e calcolare da questa query la somma dei dati di entrate di ogni singola specifica per poi sistemarli in un quadro sinottico tramite report.
    Sono arrivato a creare una singola query per una sola voce di specifica ma mica posso farne 20 con l'impossibilità poi di creare il report....
    Forse il problema è concettuale cioè di impostazione del database.
    Che ne dici?
    Ti ringrazio comunque dei preziosi suggerimenti.
  • Re: Calcolo nella query

    Salve, silene;
    non vorrei andare fuori tema, ne tanto meno complicarti la vita, ma, Ti chiedo, se nella Query
    non metti alcun criterio di selezione ne campo [Prodotto] dovrebbero uscire tutti i Prodotti (le Tue circa 20 voci) e nel campo successivo la somma dei relativi costi. Questo non soddisfa le Tue esigenze?

    È sempre difficile, almeno per mè, proporre delle soluzioni senza avere la visione completa del DB, ma, se non trovi una soluzione adeguata, se lo ritieni opportuno,e se questo non contrasta con lo spirito di questo Forum, ti posso inviare in allegato mail, un DB come esempio ricavato da una procedura che ho sviluppato qualche tempo fà dove sono previste delle [Professioni] (il Tuo [Prodotto]) e una [Quota] di associazione (il Tuo [Costo]) registrate in un migliaio di Record nel quale utilizzo le soluzioni che Ti ho proposto; in questo modo potresti verificare in concreto se qualche soluzione applicata può esserTi di spunto.

    A disposizione.

    Ti lascio il mio indirizzo mail.
  • Re: Calcolo nella query

    Salve GiuseppeMN,
    ho provato a non mettere il criterio e giustamente mi appaiono tutti i record secondo questo schema:
    data ENTRATE Specifica USCITE specifica
    2/2/2011 40 i°acconto 20 lattaio
    5/5/2011 100 premio 40 calzolaio
    .......... ..... ............ .... ..........
    Il problema è che io voglio sistemare in un report i dati così:
    Gestione entrate Gestione uscite
    accconti (somma di tutti) lattaio(somma)
    premi (idem) Calzolaio(idem).
    ............ ...............
    totale totale
    Ti ringrazio per la tua disponibilità ma freferirei tentare con i soli suggerimenti spirito del forum a parte.
  • Re: Calcolo nella query

    Toc! toc!
    silene, poi prometto che non ti distubo più.
    Hai provato a:
    1) impostare la Query senza criterio ne formula (solo i due campi [Prodotto] e [Costo])
    2) impostare un report sulla Query di cui sopra con i due campi [Prodotto] e [Costo]
    3) utilizzando la funzione “Ordinamento e raggruppamento”, disponibile nella struttura dei Report,
    impostata come:
    "Campo o espressione" ---> Prodotto
    "Intestazione (gruppo)" ---> No (default)
    "Piè di pagina (gruppo)" ---> Si
    le altre voci vanno lasciate come impostate per default
    4) nel nuovo "spazio che si è creato, Piè di pagina Prodotto" (sotto corpo)
    inserisci due "Casella di testo":
    la prima con "Origine controllo" [Prodotto], la seconda con "Origine controllo" =Somma([Costo)
    5) nel nuovo "spazio che si è creato, Piè di pagina Report" (sotto Piè di pagina pagina)
    inserisci una "Casella di testo" con "Origine controllo" =Somma([Costo)

    A questo punto il Report presenterà tutti i Costi di ogni Prodotto con il totale parziale di ogni Prodotto e, nell'ultima riga del Report, il totale di tutti i Costi.
    Se vuoi solo i totali parziali, quindi evitare di avere n righe per gli n Record della Query, cancella semplicemente i due campi [Prodotto] e [Costo] presenti in "Corpo". Il Report presenterà solo i Prodotti con il totale Costi senza riportare le singole quote.
    Ho cercato di semplicare, ma, evidentemente nella Query puoi inserire tutti campi che desideri (Data, Entrate, Specifica#1, Uscite, Specifica#2, ...); basterà razionalizzare l'output del Report.

    Sono stato troppo prolisso? I'm sorry.

    A disposizione.
  • Re: Calcolo nella query

    Ciao GiuseppeMN,
    molto interessante ciò che proponi, tuttavia ieri, quasi a tarda notte, ho trovato una soluzione tanto semplice quanto ,penso, efficace.
    Ho tralasciato la query.
    Ho creato una maschera vuota che ho riempito di etichette riguardanti tutte le voci specifiche.
    Accanto ho posto caselle di testo calcolate con varie espressioni, una di esempio:
    =DSum("[entrate]";"[generale]";"[specifica]='acconti' ") ecc ecc...
    Per calcolare i totali parziali( le specifiche le ho raggruppote per tipologia)e i totali generali ho semplicemente eseguito
    le varie somme delle suddette caselle di testo =somma[testo1]+[testo2].....
    Ho formattato convenientemente la maschera e alla stampa risulta abbastanza gradevole.
    Studierò meglio la tua proposta e la terrò pronta per eventualità successive.
    Grazie e buona giornata
  • Re: Calcolo nella query

    Ancora sul calcolo in una query.
    Ho una query con il campo ENTRATE e campo MESE ;voglio fare la somma di tutte le entrate e poter verificarle a video per un rapido controllo.
    Nel criterio del campo MESE inserisco il mese ma non riesco a procedere, sempre nella struttura della query , a livello del campo ENTRATE.
    Un suggerimento proprio non guasterebbe.
    Grazie
  • Re: Calcolo nella query

    Ciao silene, vediamo se questa volta riesco ad aiutarti più compitamente.
    La soluzione dovrebbe essere analoga al primo suggerimento che ho proposto in questo stesso Thread (garantisco che funziona); cerco di sviluppare meglio la procedura.
    Mi pare di capire che hai una Query con due campi [Mese] e [Entrate];
    rendi attivo il simbolo S "Totali" (nel caso il simbolo S non sia disponibile nella Tua barra degli strumenti, lo puoi selezionare dal menù "Personalizza" "Comandi" "Struttura query").
    Nella struttura della query, tra "Tabella" e "Ordinameto", dovresti trovare una nuova proprietà, "Formula"; assegna le seguenti proprietà ai due campi:

    [Mese]
    Campo: Mese
    Tabella: TuaTabella
    Formula: Raggruppamento
    Criteri: Periodo da selezionare

    [Entrate]
    Campo: Entrate
    Tabella: TuaTabella
    Formula: Somma

    In visualizzazione dovresti avere il periodo selezionato con la somma dei relativi valori.

    A disposizione.

    Buon fine settimana.
  • Re: Calcolo nella query

    Grazie GiuseppeMN,
    ho seguito la tua procedura (peraltro già sperimentata) ma la query mi restituisce un foglio dati con i valori che io ho immesso e non vi è traccia della somma dei dati della colonna del campo ENTRATE.
    Forse bisognerà creare un nuovo campo (in modalità struttura)e lì inserire una espressione?
    Che ne dici?
    Intanto, buona serata
  • Re: Calcolo nella query

    Silene, grazie di avermi risposto;
    la procedura che Ti hoi proposto non utilizza ulteriori campi calcolati a quelli che Ti ho proposto.

    Nel caso in cui il [Mese] sia stato configurato come:
    Gennaio, Febbraio, ... ,Dicembre oppure 1, 2 ... ,12 la query renderà una riga per ogni mese selezionato con la somma [Entrate] di tutti i record correlati; mentre, nel caso incui [Mese] contenga una data e la selzione venga impostata come Between [Da_Data] And [A_Data], la somma avverrà per ogni giorno del mese selezionato; per esempio se alla data gg/mm/aaaa sono stati inseriti 5 record distinti, la query renderà una riga con la data gg/mm/aaaa e la somma delle [Entrate] inserite nei 5 record riferiti alla data gg/mm/aaaa. Pertanto se hai inserito "n" record con date diverse, la query renderà tante righe quanti sono le date inserite con le relative somme [Entrate].

    Se fosse possibile Ti farei avere un file esplicativo come traccia (che non è "pappa pronta") ma, non so proprio come fare.

    A questo punto non ci resta che affidarci alla valutazione di qualche altro Utente per risolvere più adeguatamente la tua richiesta e, per quanto mi concerne, capire dove manco nelle mia procedura.

    A disposizione.

    Buona serata.
  • Re: Calcolo nella query

    Ciao GiuseppeMN,
    forse non sono stato chiaro. pertanto ti mando un piccolo foglio dati di una query alla quale ho applicato ciò che dici (per il mese ho scritto nei criteri: ([mese?]) e infatti all'esecuzione della query mi chiede il mese , e quindi da questo punto di vista il problema è risolto).
    MESE SOMMA DI ENTRATE
    gennaio 150
    gennaio 200
    gennaio 75
    ......... ....
    ma ciò che voglio è che appaia(penso in un campo attiguo) 425(150+200+75)e non
    le cifre inserite nella maschera.

    Silene
  • Re: Calcolo nella query

    Ciao GiuseppeMN,
    ho risolto il problema.
    Ho aggiunto alla query il campo ID e quindi i campi ora sono
    ID MESE ENTRATE.
    Dopo aver cliccato su sommatoria nel campo ID ho posto: CONTEGGIO.Nel campo ENTRATE: SOMMA(come prima).
    Eseguendo la query ottengo il numero di record interessati e la somma delle entrate.
    Per quanto riguarda il mese nei criteri ho posto ([mese?])per cui all'esecuzione della query inserisco il mese desiderato.
    Ora si tratta di apportare miglioramenti alla visualizzazione della query.

    Buona nottata e buona domenica
  • Re: Calcolo nella query

    Molto bene, silene;
    ora, che tutto funziona, se non ti serve il conteggio puoi tranquillamente togliere il campo [ID]; il risultato somma [Entrate] sarà lo stesso.

    Se all'esecuzione della query inserisci gennaio la query renderà:
    gennaio .... 425

    Se nella struttura della query, in [Mese], non poni criteri di selezione, la query renderà l'elenco univoco di tutti i mesi con i relativi totali:
    gennaio .... 425
    febbraio ... totale [Entrate]
    marzo ...... totale [Entrate]
    ...

    Buona serata.
  • Re: Calcolo nella query

    Ciao GiuseppeMN,
    non è finita (porta pazienza)ho un altro problema da risolvere..
    Ho unito tra loro due query con il comando select ...union all.....e poi ho creato un report basato sulla query unione.
    Nel report(piè di pagina) ho sistemato una casella calcolata che mi consenta di fare la somma dei valori di un certo campo ma riferiti a determinati record.
    I campi sono ENTRATE(numerico) e TIPO(specifica il tipo di entrate)
    Nell'origine controllo della casella ho inserito il seguente codice:
    =somma([entrate],Like[tipo]="compensi occasionali")
    Ebbene all'esecuzione dà #errore.
    Se inserisco =somma([entrate]) esegue la somma di tutti i record.
    Dove stà l'inghippo?
    Grazie e buona serata.
    Silene
    Ps forse dovevo creare una nuova discussione visto che in fondo si tratta di report ma ho pensato che potevo utilizzare ancora questo titolo.
Devi accedere o registrarti per scrivere nel forum
16 risposte