Creazione query

di il
37 risposte

Creazione query

Buongiorno mi chiamo daniele. è da tanto tempo che provo a creare una query ma proprio non riesco. non conosco la programmazione ma qualcosa faccio lo stesso. vi chiedo possibilmente di darmi un indicazione. 

spiego. ho creato una tabella con nomi, data,lavoro eseguito

vorrei creare 2 query del genere:

la prima è: estrai i nomi che hanno eseguito il taglio di erba in un periodo tra oggi e un periodo di minimo 28 giorni ad un massimo di 35.

e dai nomi estratti fai un altra estrazione. estrai nomi a random

grazie a tutti per il sostegno 

37 Risposte

  • Re: Creazione query

    Sì ma qui non si chiedono soluzioni pronte all'uso. Scopo del forum è aiutare non realizzare lavori.

    Per cominciare nel campo lavoro eseguito c'è una descrizione come stringa o un codice numerico che fa riferimento ad una tabella con la codifica dei lavori? Se non c'è il codice il db va ripensato

    Lo stesso dovrebbe essere per i nomi

  • Re: Creazione query

    https://support.microsoft.com/en-au/office/rnd-function-503cd2e4-3949-413f-980a-ed8fb35c1d80

    https://support.microsoft.com/en-au/office/rnd-function-503cd2e4-3949-413f-980a-ed8fb35c1d8

  • Re: Creazione query

    Ciao grazie per avermi risposto.

    non cerco la soluzione anche perche trovare il lavoro fatto non mi aiuta ad imparare e non è neanche giusto nei vostri confronti

    vorrei indicazioni

    al momento nella query ho scritto select id,nome from query lavori eseguiti order by rnd(query lavori eseguitiID)

    ma chiaramente mi da errore 

  • Re: Creazione query

    13/06/2023 - oregon ha scritto:


    estrai i nomi che hanno eseguito il taglio di erba in un periodo tra oggi e un periodo di minimo 28 giorni ad un massimo di 35

    Devo essere sincero, non ho capito cosa significa. Potresti esplicitare con un esempio?

    13/06/2023 - danielefioretti ha scritto:


    ho creato una tabella con nomi, data,lavoro eseguito

    Come si chiama la tabella? Lavori? Questa tabella avrà certamente valori ripetuti sul campo Nome. Hai previsto una tabella (madre) Nomi relazionata alla tua tabella?

  • Re: Creazione query

    Dim MyValue
    ' Generate random value between 1 and 6.
    MyValue = Int((6 * Rnd) + 1)

    questa soluzione è interessante ma non so dove devo scriverla

  • Re: Creazione query

    La prima query ( query lavori eseguiti) (campi query: id,nome,data)estrae i nomi in base alla data di quando hanno eseguito il lavoro. quindi in un intervallo di massimo 35 giorni e un minimo di 28

    e sulla base dei dati estratti la seconda query estrae i nomi a random

  • Re: Creazione query

    Ho creato una tabella chiamata nome con campo id(increment),nome,data,lavoro

    poi nella query chiamata query lavori eseguiti ho messo i campi id,nome,data

  • Re: Creazione query

    13/06/2023 - danielefioretti ha scritto:


    Dim MyValue
    ' Generate random value between 1 and 6.
    MyValue = Int((6 * Rnd) + 1)

    questa soluzione è interessante ma non so dove devo scriverla

    Leggi tutta la guida, c'è proprio quello che ti serve…

    Myvalue lo prendi dai tuoi idnome (suppongo esista e sia numerico)…

    Scrivi e posta cheti aiutano in tanti.

    Da quegli id estratti poi costruiamo la select…

    A dopo.

  • Re: Creazione query

    A parte il fatto che chiamare una tabella come un campo non è corretto, comunque non hai risposto alla domanda.

    In ogni caso il db va ripensato tutto, con tabella dei nomi, tabella dei lavori, tabella nomi-lavori con relative relazioni. Solo dopo puoi pensare alle query

  • Re: Creazione query

    Cerco di spiegare meglio. 

    Ho creato una tabella chiamata NOME.

    i campi sono nome - data - lavoro

    Devo preparare un programma di lavoro   I lavori non vengono eseguiti sempre dallo stesso operaio ma lo si fa a rotazione.Quindi facendo un esempio. Alberto ha tagliato l'erba oggi lo deve rifare tra circa 2 mesi.

    E cosi per tutti gli operai.  vorrei fare due query

    La prima mi estrae i nomi in base alla data. Al momento ho scritto nei criteri date()-35. Ma questo tipo di istruzione mi estrae il nome se esiste di chi ha lavorato esattamente  28giorni fa.nella query vorrei dire estrai i nomi in un periodo che va da un minimo di 28 giorni fa ad un massimo di 40. 

    E poi sulla base dei nomi estratti vorrei un estrazione a random. Grazie e scusatemi se non sono molto chiaro nella spiegazione grazie

  • Re: Creazione query

    Ho strutturato così le tabelle
    OPERAI
    Id (autoincrement)
    Nome
    donne si/no
    Uomo si/no
    fklavori fk
    
    
    LAVORI
    id (autoincrement)
    data
    fkOPERAI
    
    Poi ho collegato idoperai con fkoperai
    Giusto?
  • Re: Creazione query

    13/06/2023 - danielefioretti ha scritto:


    estrae i nomi in base alla data di quando hanno eseguito il lavoro. quindi in un intervallo di massimo 35 giorni e un minimo di 28

    Cioè se oggi è 13/06/2023, a te interessano le date da 9/5/2023 (oggi -35) e 16/5/2023 (oggi -28). Giusto?

    13/06/2023 - danielefioretti ha scritto:


    Ho strutturato così le tabelle
    OPERAI
    Id (autoincrement)
    Nome
    donne si/no
    Uomo si/no
    fklavori fk
    
    
    LAVORI
    id (autoincrement)
    data
    fkOPERAI
    
    Poi ho collegato idoperai con fkoperai
    Giusto?

    No, perchè…

    13/06/2023 - oregon ha scritto:


    In ogni caso il db va ripensato tutto, con tabella dei nomi, tabella dei lavori, tabella nomi-lavori con relative relazioni. Solo dopo puoi pensare alle query

    Nelle tabelle che hai mostrato ci sono vari errori logici e estetico/formali, questi ultimi servono a comprendersi meglio tra gli utenti del forum.
    1. Le tabelle vanno nominate sempre al plurale: OK.
    2. I campi ID a numerazione automatica (chiave primaria) vanno dichiarati esplicitamente, ossia IDOperaio e IDLavoro (al singolare).
    3. fkOperai rinominalo fkOperaio (almeno).
    4. Non ti servono 2 campi Donna e Uomo, ne basta uno (bivalore) Donna/Uomo…di solito si usano le inziali del sesso F/M.
    5. Come ha accennato oregon, hai bisogno di 3 tabelle:

    Operai
    IDOperaio (PK)
    Nome
    Sesso

    Lavori
    IDLavoro (PK)
    DenominazioneLavoro

    LavoriOperai
    IDLO (PK)
    Data
    IDLavoro (FK)
    IDOperaio (FK)

    Relazioni:
    Operai.IDOperaio uno-a-molti LavoriOperai.IDOperaio
    Lavori.IDLavoro uno-a-molti LavoriOperai.IDLavoro

    I campi di relazione PK e FK possono avere la stessa denominazione.

  • Re: Creazione query

    13/06/2023 - OsvaldoLaviosa ha scritto:


    4. Non ti servono 2 campi Donna e Uomo, ne basta uno (bivalore) Donna/Uomo…di solito si usano le inziali del sesso F/M.

    e no!!!!   non sono d'accordo !!!

    caso mai F/M/Altro

    Trivalore ;)) 

  • Re: Creazione query

    Grazie mille. Devo dire crescono proprio fuori pista. Ti ringrazio per la correzione 

Devi accedere o registrarti per scrivere nel forum
37 risposte