Query su base trimestrale

di il
37 risposte

Query su base trimestrale

Ciao
ho un db con la tabell aprincipale ANAGRAFICA che contine vari campi anagrafici ed un campo TRATTAMNETI che pesca in un altra tabella DATE TRATTAMENTI (collegate tramite id) dove ci sono i campi DA A TIPO TRATTAMENTO

Ora ho bsogno di fare varie query partendo dalla condizione primaria che è il trimestre
Ovvero tutti quelli in trattemnto durante il 1 trimestre, oppure nel 2 o nel 3
Per vedere se il paziente è in trattamento ho appunto questi due campi DA e A, e non so come organizzare la condizione
Ho pensato ad un flag che si attivi finche non sia concluso il trattamento (e si riattivi quando riparte) che sia il criterio di ricerca per il trimestre?
grazie per il supporto

37 Risposte

  • Re: Query su base trimestrale

    Impiega la funzione DatePart, impostando l'intervallo sul trimestre in cui ricade la data di trattamento:
    https://support.office.com/it-it/article/funzione-datepart-26868a79-5505-4e5a-8905-6001372223fa
    in modo da selezionare i trattamenti nel trimestre.
    Non è chiaro ove parli della continuità nei trattamenti
    .. flag che si attivi finché non sia concluso il trattamento (e si riattivi quando riparte) ...
    se devi selezionare nel trimestre tutti i soggetti con un determinato flag e osservare tutti quelli che ricadono nelle condizioni o anche quelli a cavallo nel trimestre; quindi chiarisci nel dettaglio.
  • Re: Query su base trimestrale

    In questo 3D viene affrontato l'argomento... in modo strutturato.
    Si basa su una Form che consente di ricostruire la WHERE CONDITION per effettuare Filtri "Complessi" su date...
    "forum.masterdrive.it/access-79/selezione-date-periodo-95381/"

    L'esempio è da studiare...
  • Re: Query su base trimestrale

    willy55 ha scritto:


    Impiega la funzione DatePart, impostando l'intervallo sul trimestre in cui ricade la data di trattamento:
    https://support.office.com/it-it/article/funzione-datepart-26868a79-5505-4e5a-8905-6001372223fa
    in modo da selezionare i trattamenti nel trimestre.
    Non è chiaro ove parli della continuità nei trattamenti
    .. flag che si attivi finché non sia concluso il trattamento (e si riattivi quando riparte) ...
    se devi selezionare nel trimestre tutti i soggetti con un determinato flag e osservare tutti quelli che ricadono nelle condizioni o anche quelli a cavallo nel trimestre; quindi chiarisci nel dettaglio.
    allora prendo inesame il trimestre gennaio-marzo
    Qualsiasi utente sia stato trattato nel trimestre è da considerare
    Ma nella mia tabella ho solo un campo inizio ed un campo fine
    Se un utente inizia a novembre e oggi a fine trimestre è ancora in trattamento, la tabella avra solo il campo inizio e niente sul campo fine
    Come posso desumere che è ancora in trattamento?

    Ovviamente il trattamento è piu o meno giornaliero o periodico, quindi c'è una continuità fino al giorno di fine trattamento
    Pensandoci bene il flag non serve a molto. Se il trattamento è in corso si puo essere utile, ma il trattamento potrebbe essere finito e ricadere cmq nel trimestre. Il flag tipo trattatmento in corso in questo caso non saREBBE esaustivo

    per maggior chiarezza la tabella trattamenti puo apparire cosi

    id ----- dal ---------- al --------- tipo trattamento
    7 -- 10/10/2005 -- 4/06/2011 -- metadone
    7 -- 12/5/2012 -- 28/12/2013 -- farmaci
    7 -- 13/2/2018 -- _________ -- metadone

    o cosi

    7 -- 10/10/2005 -- 4/06/2011 -- metadone
    7 -- 12/5/2012 -- 28/12/2013 -- farmaci
    7 -- 13/2/2018 -- 21-4-2018 -- metadone
    7 -- 23/7/2018 -- 11-11-2018 -- metadone

    il primo caso è in trattamento nell ultimo trimestre 2018
    nel secondo caso c'è trattamento nel 1 trimestro e poi nel 3 e nel 4 trimestre

    insomma a me sembra un dato complesso da lavorare, che ne dite?
  • Re: Query su base trimestrale

    @Alex ha scritto:


    In questo 3D viene affrontato l'argomento... in modo strutturato.
    Si basa su una Form che consente di ricostruire la WHERE CONDITION per effettuare Filtri "Complessi" su date...
    "forum.masterdrive.it/access-79/selezione-date-periodo-95381/"

    L'esempio è da studiare...
    ok da quello che vedo mi sara utile per impostare il range, prima dovrei capire come impostare il valore su cui fare il calcolo
  • Re: Query su base trimestrale

    Quando parli di trimestri, da come descrivi, non è chiaro se devi far riferimento all'anno o si deve prendere in considerazione l'ultimo record del gruppo, inoltre nel primo caso (al record senza data) ove il campo "AL" non è valorizzato per la conclusione del trattamento:
    7 -- 13/2/2018 -- _________ -- metadone
    è possibile determinare che l'inizio ("DAL") ricade nel primo trimestre ma non quando termina il trattamento.
    Si potrebbe ipotizzare che la data "AL" sia la data odierna, ma tale giorno sarebbe variabile nel tempo e quindi estendersi magari per tutti gli altri trimestri.
    Ne consegue che devi aver prima chiaro quale sia il criterio con cui devi selezionare i dati e se questo assuma una valenza fissa (ad esempio perché è da certificare una situazione a data certa) oppure si debba ottenere una evoluzione temporale.
  • Re: Query su base trimestrale

    Il criterio con cui devo selezionare i dati è chiaro, è il modo in cui farlo che non lo è

    Il record senza data è perchè in quel caso il trattamento è ancora in corso , non è finito, e l ho messo come esempio proprio per mostrare le possibili variabili che ci sono
    Il trimestre è come ho scritto riferito all anno, quindi sempre Gen,Feb, Mar poi Apr, Mag Giu ..e cosi via
    L esempio mostra come un utente possa essere nel trimestre sia nella condizione di trattamento finito o di trattamento in corso, e quindi in condizioni diverse almeno per quanto riguarda i dati del database
    Un utente poi puo essere in piu trimestri, non necessariamente contigui
    Insomma la prima difficoltà sta proprio nel capire come organizzare quesi dati per poterli poi raccogliere secondo la modalità descritta, ovvero la ricerca trimestrale di chi è stato o è in trattamento

    se prendo ultimo trimestre 2018 devo essere in grado di selezionare tutti quelli che anche solo per un giorno sono stati in trattamento, sia che lo abbiano terminato sia che lo abbiano finito
  • Re: Query su base trimestrale

    Per stefanocps:
    1. Devi considerare che gli altri utenti del forum non conoscono il tuo campo professionale. Se tu dai per scontate terapie periodiche di questo o quel farmaco, al momento lo sai solo tu. Cerca di fornire dettagli più a portata di utente non addetto ai tuoi lavori.
    2. Conseguenza del punto 1. io ti consiglierei di tracciare "periodi" di trattamento più corti/spezzettati in modo da conoscere più agevolmente in quale "trimestre" di "cosa" la "persona" sta trattando.
    3. Almeno io gradirei una descrizione dettagliata delle tabelle che entrano in gioco con la denominazione concreta/propria dei tabelle e campi, con relazioni.
    4. Azzardo a ruota libera...ho la sensazione che andrebbero scissi in due concetti diversi:
    4.1- ciò che è il tracciato dei "trattamenti"
    4.2- ciò che una "terapia" prevede
    ...quando un paziente (o tossicodipendente...mi pare stiamo parlando di ciò)...interrompe o assume tutt'altro dalla terapia prevista...direi che qualcosa potrebbe saltare dalla terapia "inizialmente prevista".
  • Re: Query su base trimestrale

    Ovviamente non do er scontato nulla, probabilmente quanto illustrato finora non è sufficiente e lo comprendo bene
    Non ho capito bene cosa intenti per tracciare "periodi" di trattamento più corti
    Per ordine
    Il periodo del trimestre non è modificabile, perchè uqllo è il periodo che irchiede la prefettura per dei rilievi statistici atti a delineare il profilo della persona che si rivolge alla struttura.
    Quindi il db serve essenzialmente a questo, raccogliere il profilo dell utente per poi inviarlo alla prefettura

    La tabella ANAGRAFICA contiene dati anagrafici, NOM COGNOME, DATA NASCITA, SESSO. TIITOLO DI STUDIO, OCCUPAZIONE NAZIONALITA, SOSTANZA USATA, DATA 1 ASSUNZIONE, DATA ASSUNZIONE REGOLARE E PERIODO TRATTAMENTI (alcuni di questi campi, Nazionalità, SOSTANZA USATA, TITOLO DI STUDIO. SESSO. OXCXUPAZIONE pescano in tabelle che contengono i valori possibili)
    Il PERIODO TRATTAMENTI è ricavato da una tabella chè è quella di chui ho parlato sopra, chiamata
    DATE TRATTAMENTI (collegata ad ANAGRAFICA tramite id) dove ci sono i campi DA - A - TIPO TRATTAMENTO

    Ora una volta fatta l'anagrafica, tramite una maschera lavoro sulla tabella ANAGRAFICA e su DATE TRATTAMENTI e quello che faro è inserire le date di inizio e fine trattamento e il tipo di trattamento. QUest'ultimo campo pesca in una tabella che contiene i trattamenti possibili

    QUello che serve è trimestralmente selezionale i pazienti per ricavare per eseempio tutti i trattati per fascie di eta, le sostanze usate dai trattati, la data di prima assunzione dei trattati ed altro. Per ognuna di queste ricerche vanno contati il numero dei MASCHI, delle FEMMINE e il TOTALE

    Spero di essere stato più chiaro
    Al momento, ripeto, la difficoltà più grossa sta nel come strutturare i dati affinche siano possibili i rilevamenti trimestrali, sulla base delle date dei trattamenti, quello che ho spiegato nel post preecedente

    Quindi non è ad uso medico, ma statistico. Ovvio che può servire al medico per avere un quadro di riferimento rapido, ma l'esigenza nasce per le statistiche
    Oggi questi dati raccolti su chede di carte, ogn paziente ha la sua dove su ogni riga c'è scritto inizo.fine trattamento e tipo trattamento

    Specifico, io sto facendo su base volontaria, come molti che lavorano li, questo db perchè ho piu competenze medie di altri. Ho fatto dei db, mai particolarmente complessi, non sono specializzato su vb/access ma conosco bene l'informatica essendo consulente hw/sw
  • Re: Query su base trimestrale

    Una cosa che potrebbe sempolificare è che il rilevamento trimestre va fatto solo a fine trimestre, quindi ad aprile raccogliero i dati di GEN-MAR a luglio quelli di APR-GIU..e cosi via
  • Re: Query su base trimestrale

    stefanocps ha scritto:


    La tabella ANAGRAFICA contiene dati anagrafici, NOM COGNOME, DATA NASCITA, SESSO. TIITOLO DI STUDIO, OCCUPAZIONE NAZIONALITA, SOSTANZA USATA, DATA 1 ASSUNZIONE, DATA ASSUNZIONE REGOLARE E PERIODO TRATTAMENTI (alcuni di questi campi, Nazionalità, SOSTANZA USATA, TITOLO DI STUDIO. SESSO. OXCXUPAZIONE pescano in tabelle che contengono i valori possibili)
    Ho già avuto modo di obiettare questa lista campi (in un'altra discussione) per una tabella ANAGRAFICA. Per me i campi da "Sostanza usata" in poi non dovrebbero comparire. Il campo più assurdo di tutti mi appare il [Periodo trattamenti].

    Per tutto il resto...temo tu confonda il fatto di TRACCIARE i singoli FATTI STORICI (nel tuo caso si tratta delle somministrazioni di farmaci), questo lo scrivi nelle tabelle (attraverso le maschere). Mentre le statistiche devi delegarle comunque alle query.

    Io ho capito il fatto che tu hai 4 momenti statistici GEN-MAR, APR-GIU, LUG-SET, OTT-DIC. Ma non ho capito il fatto che a Tizio vengano somministrati farmaci ad esempio dal 2 feb in poi...cadendo in 2 trimestri diversi. Se è così credo che Tizio vada "monitorato" per i giorni che gli riguardano nel 1° trimestre e per gli altri giorni che gli riguardano nel 2° trimestre...boh!

    Non ho ricevuto risposta riguardo il fatto se Caio non si comporta secondo la terapia e durante il "proprio" periodo prende altri tipi di farmaci e/o sostanze.
  • Re: Query su base trimestrale

    OsvaldoLaviosa ha scritto:


    stefanocps ha scritto:


    La tabella ANAGRAFICA contiene dati anagrafici, NOM COGNOME, DATA NASCITA, SESSO. TIITOLO DI STUDIO, OCCUPAZIONE NAZIONALITA, SOSTANZA USATA, DATA 1 ASSUNZIONE, DATA ASSUNZIONE REGOLARE E PERIODO TRATTAMENTI (alcuni di questi campi, Nazionalità, SOSTANZA USATA, TITOLO DI STUDIO. SESSO. OXCXUPAZIONE pescano in tabelle che contengono i valori possibili)
    Ho già avuto modo di obiettare questa lista campi (in un'altra discussione) per una tabella ANAGRAFICA. Per me i campi da "Sostanza usata" in poi non dovrebbero comparire. Il campo più assurdo di tutti mi appare il [Periodo trattamenti].

    Per tutto il resto...temo tu confonda il fatto di TRACCIARE i singoli FATTI STORICI (nel tuo caso si tratta delle somministrazioni di farmaci), questo lo scrivi nelle tabelle (attraverso le maschere). Mentre le statistiche devi delegarle comunque alle query.

    Io ho capito il fatto che tu hai 4 momenti statistici GEN-MAR, APR-GIU, LUG-SET, OTT-DIC. Ma non ho capito il fatto che a Tizio vengano somministrati farmaci ad esempio dal 2 feb in poi...cadendo in 2 trimestri diversi. Se è così credo che Tizio vada "monitorato" per i giorni che gli riguardano nel 1° trimestre e per gli altri giorni che gli riguardano nel 2° trimestre...boh!

    Non ho ricevuto risposta riguardo il fatto se Caio non si comporta secondo la terapia e durante il "proprio" periodo prende altri tipi di farmaci e/o sostanze.
    ho capito la tua osservazione, il fatto è che questo problema del periodo trattamento è a monte credo.
    Capire come fare per monitorare questa cosa diventa la base su cui eventualmente sviluppare meglio il resto
    Piu che confondere ho cercato di spiegare le due fasi di lavoro sul db
    Una è quella in cui attraverso le maschere aggiorno i trattamenti e inserisco nuovi pazienti
    Questa è funzionale allo scopo del db, estrarre le quer trimestrali
    Il trattamento puo ricadere in 4 trimestri se è continuativo
    Funziona cosi
    L'utente quando decide di curarsi viene, apre la cartella (o la riapre) e tutti i giorni viene per assumere terapia (farmaci/metadone)
    Arriva un momento che smette di venire perche sta meglio, o perchè non vuole piu curarsi o per altre ragioni; dopo circa 1 mese che non viene viene segnato l'ultimo giorno che è venuto come data di fine trattamento

    Questi cicli hanno durate variabili e possono ripetersi diverse volte nel tempo; si tratta di pazienti che decidono di curarsi volontariamente, per cui la loro frequnza puo essere molto altalenante
    C'è chi viene per anni regolarmente, chi viene 2, 3 mesi poi smette per 6 e poi ritorna per 1 mese e poi smette...insomma è una modalità assolutamentye variabile e imprevedibile
    E quello che serve è contare le persone che sono in trattamento o sono state in trattamento (anche solo 1 giorno) nel trimestre finito
    Riguardo la tua ultima domanda, se ho capito bene se Caio prende altri farmaci e o sostanze non è un parametro che serve valutare
  • Re: Query su base trimestrale

    Ma allora secondo me ti servono semplicemente 2 tabelle Anagrafica e Trattamenti. Quest'ultima con i campi:
    IDTrattamento (PK)
    DataTrattamento
    NomeFarmaco
    IDPersona (FK)

    Finito il 1° trimestre crei una query dove importi tutti i campi di Trattamenti e sul campo DataTrattamento metti il filtro/Criterio:
    Between 1/1/2019 And 31/3/2019
    e risolvi la questione.
  • Re: Query su base trimestrale

    OsvaldoLaviosa ha scritto:


    Ma allora secondo me ti servono semplicemente 2 tabelle Anagrafica e Trattamenti. Quest'ultima con i campi:
    IDTrattamento (PK)
    DataTrattamento
    NomeFarmaco
    IDPersona (FK)

    Finito il 1° trimestre crei una query dove importi tutti i campi di Trattamenti e sul campo DataTrattamento metti il filtro/Criterio:
    Between 1/1/2019 And 31/3/2019
    e risolvi la questione.
    ho bisogno comunque dell inizio trattamento e fine trattamento. Questo serve per l'archiviazione interna, oggi le schede di carta riportano questi dati, servono per vedere l'andamento dek paziente quando ritorna
    Insierire la data del trattamento, se intendi quella del giorno in cui è stato trattato, significherebbe aggiornare ogni giorno la tabella per diverse decine di pazienti e non c'è nessunoche lavora giornalmente al db

    Avevo pensato ad un campo che si aggiornasse automaticante con la funzione oggi e si fermasse quando do un determinato comando. Potrebbe funzionare forse?
  • Re: Query su base trimestrale

    Così mi fai capire che un PazienteX quando viene tracciato INIZIA un CicloTrattamento (con relative DataInizio e DataFine). Ipotizziamo che PazienteX non porta a termine il CicloTrattamento, sparisce per 10 mesi, poi ricompare per iniziare un NUOVO CicloTrattamento. Giusto? È così che stanno le cose?
    All'interno di ogni CicloTrattamento ci sono le "molte" somministrazioni farmaci. Giusto?

    Se la mia analisi è corretta, potresti progettare le tabelle così:
    Anagrafica
    IDPersona (PK)
    Cognome
    Nome
    Indirizzo
    ...altri campi solo ed esclusivamente anagrafici…

    CicliTrattamenti
    IDCiclo (PK)
    DataInizio
    DataFine
    IDPersona (FK)

    DettagliCicli
    IDDC (PK)
    DataFarmaco
    NomeFarmaco
    IDCiclo (FK)

    Relazioni:
    Anagrafica.IDPersona uno-a-molti CicliTrattamenti.IDPersona
    CicliTrattamenti.IDCiclo uno-a-molti DettagliCicli.IDCiclo

    In questo modo quando PazienteX ricompare una seconda volta (dopo aver abbandonato il Ciclo1) gli si apre un nuovo Ciclo2 con nuove DataInizio e DataFine.

    stefanocps ha scritto:


    Insierire la data del trattamento, se intendi quella del giorno in cui è stato trattato, significherebbe aggiornare ogni giorno la tabella per diverse decine di pazienti e non c'è nessunoche lavora giornalmente al db
    Un database non è un robot o un giocattolo che lavora autonomamente. Nel database vanno comunque sempre alimentati dati che l'utente umano DEVE inserire ogni qualvolta ci sono NUOVI DATI da inserire. Questo lavoro lo si può fare giornalmente oppure periodicamente accumulando anche i dati dei giorni precedenti.

    stefanocps ha scritto:


    Avevo pensato ad un campo che si aggiornasse automaticante con la funzione oggi e si fermasse quando do un determinato comando. Potrebbe funzionare forse?
    No.
Devi accedere o registrarti per scrivere nel forum
37 risposte