Query per tabella di sintesi

di il
10 risposte

Query per tabella di sintesi

Ciao a tutti

Ho costruito un database con i campi "data" o "categoria", "sottocategoria", "attività", "ore_preparazione", "ore_lavoro".
Devo costruire una tabella di sintesi in cui viene preso in esame una solo tipo di "categoria" e un solo tipo di "attività". Gli elementi presenti nella "sottocategoria" devono essere raggruppati e devono essere visualizzate le colonne con i totali delle ore, il tutto suddiviso per mesi e con il totale annuale. Sono presenti diverse sottocategorie alcune delle quali ripetute più volte.

Finora ho fatto una prima query (query1) in cui filtro la "categoria" e l'"attività" sulla quale devo fare la ricerca. Ho poi creato una seconda query (query2) basata sulla query1 in cui seleziono l'intervallo di data del primo mese, raggruppo il campo "sottocategoria" e genero i totali per le "ore_preparazione" e "ore_lavoro". Come risultato per un singolo mese andrebbe anche bene.

Il problema è come rappresentare un risultato all'interno di una maschera che comprenda tutti i mesi. Potrei inserire 12 sottomaschere facendo 12 query (più una 13° per i totali) ma ci sarebbe un problema di allineamento perchè in alcuni mesi qualche sottocategoria non è presente, avrei inoltre i nomi delle sottocatogorie ripetuti per ogni mese.

Ho provato diverse strade tra cui quella della query a campi incrociati ma non ne riesco ad uscirne. Qualcuno mi sa indirizzare?

grazie
Luca

10 Risposte

  • Re: Query per tabella di sintesi

    Non ho capito nulla... ma per presentare dati Raggruppati per mese, basta una sola Query che abbia come Oggetto di Raggruppamento un campo Calcolato ricavato dalla Formattazione della Data in "mm/yyyy", e somma sul campo di cui fare la somma...
  • Re: Query per tabella di sintesi

    @Alex ha scritto:


    Non ho capito nulla... ma per presentare dati Raggruppati per mese, basta una sola Query che abbia come Oggetto di Raggruppamento un campo Calcolato ricavato dalla Formattazione della Data in "mm/yyyy", e somma sul campo di cui fare la somma...

    ok la prima query la posso anche evitare se faccio il lavoro per un solo mese, dovendo però visualizzare lo stesso raggruppamento per tutti i mesi, se faccio 12 query distinte, mi trovo in difficoltà nel rappresentare il tutto in una maschera di sintesi. Dovrei avere sulle righe le sottocategorie e sulle colonne la suddivisione in mesi, nell'incrocio tra righe e colonne le ore di preparazione e le ore di lavoro.

    Descritta cosi sembrerebbe una query a campi incrociati, mi sono accorto proprio ora che esiste una funzione all'interno di questo tipo di query che permette una suddivisione preimpostata per l'inserimento dei mesi sulle colonne. Faccio qualche prova...
  • Re: Query per tabella di sintesi

    luczana ha scritto:


    @Alex ha scritto:


    Non ho capito nulla... ma per presentare dati Raggruppati per mese, basta una sola Query che abbia come Oggetto di Raggruppamento un campo Calcolato ricavato dalla Formattazione della Data in "mm/yyyy", e somma sul campo di cui fare la somma...

    ok la prima query la posso anche evitare se faccio il lavoro per un solo mese, dovendo però visualizzare lo stesso raggruppamento per tutti i mesi, se faccio 12 query distinte, mi trovo in difficoltà nel rappresentare il tutto in una maschera di sintesi. Dovrei avere sulle righe le sottocategorie e sulle colonne la suddivisione in mesi, nell'incrocio tra righe e colonne le ore di preparazione e le ore di lavoro.

    Descritta cosi sembrerebbe una query a campi incrociati, mi sono accorto proprio ora che esiste una funzione all'interno di questo tipo di query che permette una suddivisione preimpostata per l'inserimento dei mesi sulle colonne. Faccio qualche prova...
    Non devi fare 12 query distinte... come dicevo basta 1 Query... hai capito il suggerimento... lo hai provato prima...?
  • Re: Query per tabella di sintesi

    Ok ho provato sembra funzionare, ho prima fatto una query di raggruppamento per semplificarmi la vita e poi con una query a campi incrociati ho messo le "sottocategorie" sulle righe e la "data" sulle colonne (scegliendo l'opzione dividi per mese) ho inserito nell'incrocio dei campi la somma delle ore.

    La rappresentazione è proprio quella che volevo, l'unica cosa è che nell'incrocio è possibile inserire solo un unico valore e non due valori in 2 caselle separate (ore_preparazione e ore_lavoro)...non so se questa cosa è fattibile con access
  • Re: Query per tabella di sintesi

    Haa...scusa Alex...solo ora ho capito il suggerimento che mi avevi dato sulla formattazione della data...lo provo
    grazie
  • Re: Query per tabella di sintesi

    Grazie Alex per il suggerimento
    la tabella vorrei fosse dinamica, si aggiornasse quindi automaticamente anche per i mesi a venire, per questo motivo ho difficoltà a modificare la formattazione della data visto che i record vengono inseriti con gg/mm/yyyy.

    La query a campi incrociati è quasi perfetta...le sottocategorie sulle righe, i mesi sulle colonne, le ore nelle caselle di incrocio. Farò 2 tabelle distinte per ore_preparazione e ore_lavoro. La somme delle righe viene già calcolata da questo tipo di query, quello che manca è la somme delle colonne.
    Possibile che non sia prevista la possibilità di calcolare il totale per ogni mese?
  • Re: Query per tabella di sintesi

    Non capisco proprio cosa dici... le Query sono sempre dinamiche... e il Formato della Data è solo una questione VISUALE che non deve ingannare... la manipolazione del formato ai fini di gestione è un'altra cosa.
  • Re: Query per tabella di sintesi

    @Alex ha scritto:


    Non capisco proprio cosa dici... le Query sono sempre dinamiche... e il Formato della Data è solo una questione VISUALE che non deve ingannare... la manipolazione del formato ai fini di gestione è un'altra cosa.
    Ok, mi metto a studiare
  • Re: Query per tabella di sintesi

    Grazie Alex, ho visto come dicevi il modo in cui cambiare il formato di visualizzazione della data tramite query.
    La mia richiesta era sicuramente un pò confusa viste anche le mie lacune con access.

    In realtà, grazie a questo scambio di opinioni sul forum ho capito che quello che mi serviva era una tabella incrociata che avesse in più, rispetto a quelle create con la procedura guidata anche la somma delle colonne.

    Alla fine ho risolto il tutto passando attraverso una query di unione. Prima ho costruito una query (query1) per filtrare i dati di "categoria" e "attività"
    Poi ho costruito la query di unione (query2) per rivavare i totali di colonna nel seguente modo

    SELECT
    "p" AS ord,
    Query1.sottocategoria,
    Query1.data,
    Query1.ore_preparazione

    FROM Query1;

    UNION ALL SELECT

    "t" AS ord,
    "TotFor" AS sottocategoria,
    Query1.data,
    Sum(Query1.ore_preparazione) AS Sore_preparazione

    FROM Query1

    GROUP BY "t", "TotFor", Query1.data;

    Ho poi fatto una query a campi incrociati (Query3) su questa query2 di unione dove ho messo "sottocategorie" sulle righe, la "data" raggruppata per mesi sulle colonne e le "ore_preparazione" (con somma) all'incrocio dei campi.

    Il tutto funzione e ci sono anche i totali di colonna, non so se per caso esiste anche un metodo più veloce, ho però trovato questo e al momento mi basta.

    grazie
    Luca
  • Re: Query per tabella di sintesi

    Ciao
    Mi trovo ancora ad avere un problema simile, questa volta non devo calcolare la somma, per quello sono a posto, ma effettuare un conteggio.

    Per avere un conteggio totale del numero di interventi, con totali di riga e colonna, ho pensato di seguire una procedura simile applicando "conteggio" nella Query3 finale (a campi incrociati) e sostituendo "Count" a "Sum" nelle righe di comando nella Query2, ma sul totale di colonna alla riga "TotFor" i valori non sono corretti. Qualcuno mi sa suggerire dove sbaglio?
    grazie
    Luca
Devi accedere o registrarti per scrivere nel forum
10 risposte