Query che permetta di selezionare alcune colonne da una tabella

di il
6 risposte

Query che permetta di selezionare alcune colonne da una tabella

Salve a tutti,

Apro un nuovo argomento poiché non ho trovato nulla nella ricerca (o forse ho cercato male).

Premetto che sono poco pratico di access.

Vi espongo il problema.

Ho una tabella madre così composta:

1^ Colonna (nome colonna : DIETA) = colonna delle diete (dieta ordinaria, dieta diabetica, dieta iposodica, dieta senza glutine,....).

2^ Colonna (nome colonna : PIETANZA 1) = colonna relativa alle varianti della pietanza 1 da preparare IN CORRISPONDENZA DELLA RIGA.

3^ Colonna (nome colonna : PIETANZA 2) = colonna relativa alle varianti della pietanza 1 da preparare IN CORRISPONDENZA DELLA RIGA.

e così via

Seguendo l'ordine della prima colonna ad esempio se la pietanza 1 è "cotoletta di pollo con patate", nella 1^ riga (riga delle diete ordinarie) inserisco il valore "ORDINARIO", nella seconda (diete diabetiche) "COTOLETTA DI POLLO CON VERDURE",nella 3^ (diete iposodiche) "ORDINARIO SENZA SALE", nella 4^ (dieta senza glutine) "POLLO AI FERRI CON PATATE".

Il risultato che vorrei ottenere è il seguente:

Inserendo in un campo (come fosse una query parametrica), vorrei mi si restituisse una tabella che abbia come prima colonna la 1^ colonna della tabella DIETA, e come seconda colonna la colonna che ho richiesto.

Una specie di menù del giorno in funzione delle diete.

Spero di aver espresso in maniera chiara la questione.

Vi ringrazio in anticipo

6 Risposte

  • Re: Query che permetta di selezionare alcune colonne da una tabella

    Premesso che, dalla descrizione dei dati, traspare una tabella non normalizzata (ed è sempre consigliabile verificarne la struttura); in ogni caso puoi impiegare una casella di controllo in modo che l'utente effettui la spunta (fra le diverse scelte) della dieta applicabile.
    Magari una lettura dei seguenti link può farti comprendere la tematica da affrontare:

    https://answers.microsoft.com/it-it/msoffice/forum/msoffice_access-mso_other/access-marcare-records-filtrati/0d508400-b053-4115-b816-41e219d4d8a0
    https://www.iprogrammatori.it/forum-programmazione/access/aggiornamento-campo-una-tabella-t23864.html
    https://www.iprogrammatori.it/forum-programmazione/access/utilizzo-casella-controllo-per-selezione-righe-maschera-t29679.html
    http://forum.ialweb.it/forum_posts.asp?TID=16465651&title=risolto-somma-casella-di-controllo
  • Re: Query che permetta di selezionare alcune colonne da una tabella

    In effetti la creazione della tabella Dieta_Pietanze è una Tabella enorme con tanti dati (eredità da excel nel modo di progettare). Sto leggendo un manuale di Access ed effettivamente non è stata una grande idea.

    Ho letto i link che mi hai gentilmente girato (e ti ringrazio), ma non ho trovato una risposta. sospetto che per come ho impostato la questione non sia praticabile.

    Provo a riproporre la questione allargando un pò il ragionamento, e proponendo il nuovo inizio di progettazione del db che vorrei creare.

    Obiettivo del db

    Vorrei automatizzare e velocizzare la stesura di un ordine di produzione (parliamo di un centro cottura che deve produrre i pasti per una clinica)
    Ad oggi questa operazione avviene in questo modo:

    il cliente mi da i seguenti dati: totale pasti da produrre, nominativo degli assenti (è una clinica di lungodegenza, assimilabile ad una casa di riposo, quindi con ospiti "fissi"), e nominativo degli ospiti che necessitano di una dieta bianca (per eventuali problemi gastrointestinali).

    ES; TOT pasti,
    assenti: Rossi Mario, Bianchi Carlo
    Diete Bianche: Verdi Andrea

    Il Menù del giorno è stato già concordato col cliente (Ovviamente abbiamo concordato quello che è la pietanza "Ordinaria", su 4 settimane).

    Considerando che le 160 persone hanno patologie varie (intolleranze, celiachia, diabete, difficoltà di masticazione, ecc.ecc.) non è detto che la dieta ordinaria sia adatta all'ospite, ma devo creare delle varianti in funzione della patologia e della pietanza prevista a menù per quello specifico giorno.

    Il mio cliente mi ha fornito l'elenco nominativo dei 162 ospiti con relativo regime alimentare. diciamo che i 162 ospiti li copro con 20 diete differenti (più pazienti con lo stesso regime alimentare).

    Oggi funziona cosi: per ogni paziente controllo se va bene la pietanza ordinaria o necessita di una variante ed alla fine faccio il conteggio dei pasti da produrre per ogni tipologia e lo do al cuoco come fosse una comanda di un ristorante (tipologia pietanza e numero di piatti da preparare)."s"fortunatamente i pasti totali sono circa una cinquantina e riesco a gestirlo alla vecchia maniera in poco tempo.

    Ho una lista con tutti i pazienti e la loro dieta, Stabilita la pietanza, in funzione della dieta indico cosa produrre come alternativa eventuale alla dieta ordinaria.

    PROCESSO LOGICO ATTUALE (che in ACCESS mi da il problema, forse, sulla selezione dell'attributo)

    parto dalla tabella Paziente->dieta (Elenco pazienti con relativo regime alimentare da seguire)

    creo manualmente l'associazione tra la dieta del paziente e il pasto da preparare (in pratica rispondo alla domanda: il paziente diabetico cosa deve mangiare, dal momento che a menù, oggi è prevista questa specifica pietanza?

    Combinando l'elenco pazienti con questa tabella di accoppiamento (chiamiamola dieta_pasto che però varia al variare del pasto previsto a menù), ottengo l'elenco dei pazienti ed il relativo pasto da produrre.

    Sommo i valori uguali ed ottengo l'ordine di produzione (i tempi di esecuzione di queste operazioni crescono esponenzialmente al crescere del numero dei pazienti, oltre al rischio di commettere errori).

    COSA VORREI OTTENERE dal DB

    Inserisco in input:

    1) pasto previsto oggi
    2) Flaggo gli assenti
    3) Flaggo le diete Bianche

    Vorrei in output;

    Elenco pazienti presenti con il pasto da produrre (da cui poi fare le somme e generare l'ordine di produzione).

    Scusate la lunghezza del post, ma credo che descrivere bene il problema sia il miglior primo passo per la soluzione.

    E' fattibile con Access?
  • Re: Query che permetta di selezionare alcune colonne da una tabella

    1. La prima tabella da te proposta non è normalizzata. Devi prima avere le idee chiare su questo punto.
    2. Hai proposto una problematica troppo complessa per essere affrontata in unica discussione.
    3. Con Access si possono fare tante belle cose, ma occorre partire da solide basi e idee per affrontarlo.
  • Re: Query che permetta di selezionare alcune colonne da una tabella

    Carmine Sepe ha scritto:


    E' fattibile con Access?
    la fattibilità, chiaramente, esiste ma per realizzare il progetto devi effettuare una propedeutica analisi delle tabelle interessate e delle funzionalità che vuoi assicurare.
  • Re: Query che permetta di selezionare alcune colonne da una tabella

    willy55 ha scritto:


    la fattibilità, chiaramente, esiste ma per realizzare il progetto devi effettuare una propedeutica analisi delle tabelle interessate e delle funzionalità che vuoi assicurare.
    Willy, ti ringrazio per il consiglio,
    Cosa intendi per propedeutica analisi delle tabelle interessate?

    Ragionando un pò sulla questione sono giunto alla seguente conclusione:

    Il punto nodale della questione è la "funzione", a due variabili, che alla coppia di elementi (pasto a menù, dieta del soggetto), associa il valore "pasto da preparare".

    Avendo "M" pasti a menù, ed "N" diete, se volessi creare una matrice di accoppiamento, sarebbe di dimensione MxN, e per di più con una buona dose di ridondanza (molto spesso il pasto a menù è adatto a molte diete diverse).

    Voi come Risolvereste questo problema? (lavorando io con un menù quadrisettimanale e con pranzo e cena, ottengo 112 Primi piatti, e 112 secondi (7 giorni x 4 settimane x 2 pasti al giorno x 2 menù, estivo ed invernale).

    ad oggi ho 22 diete diverse.

    Facendo il calcolo ottengo 4928 varianti (teoriche ovviamente).

    Spero di non uscire dal topic.
  • Re: Query che permetta di selezionare alcune colonne da una tabella

    Carmine Sepe ha scritto:


    Il punto nodale della questione è la "funzione", a due variabili, che alla coppia di elementi (pasto a menù, dieta del soggetto), associa il valore "pasto da preparare".

    Avendo "M" pasti a menù, ed "N" diete, se volessi creare una matrice di accoppiamento, sarebbe di dimensione MxN, e per di più con una buona dose di ridondanza (molto spesso il pasto a menù è adatto a molte diete diverse).

    Voi come Risolvereste questo problema? (lavorando io con un menù quadrisettimanale e con pranzo e cena, ottengo 112 Primi piatti, e 112 secondi (7 giorni x 4 settimane x 2 pasti al giorno x 2 menù, estivo ed invernale).

    ad oggi ho 22 diete diverse.

    Facendo il calcolo ottengo 4928 varianti (teoriche ovviamente).
    A me sembra che la questione raccontata così ha un che di mentalità alla Excel. Trovo tutta la discussione fuori dalla logica tabellare-relazionale tipica dei database e Access. Finora hai solo raccontato quello che vorresti, ma non hai mai esposto le tabelle minime (cerca di cogliere questo concetto) per iniziare una concreta discussione.
Devi accedere o registrarti per scrivere nel forum
6 risposte