Query di inserimento dati tra più tabelle

di il
4 risposte

Query di inserimento dati tra più tabelle

Salve a tutti,
sono nuovo di Access e trovo difficoltà nel creare delle query.
Ho 3 tabelle:
    contatti
-------------------------
id|nome|matricola|servizio|


                               materiale
----------------------------------------------------------------------------
idmateriale|descrizione|ricambio previsto esterno|ricambio previsto interno



                 consegne
-----------------------------------------------
matricola|idmateriale|servizio|data di consegna
                        
        
Ho necessità di creare una query che mi dia i materiali da riordinare e a chi in base al servizio del nominativo che può essere solo esterno e interno confrontando la data di consegna con il ricambio previsto della tabella materiale espresso in anni.
Ho pensato di fare una query per il calcolo del servizio esterno e una per il servizio interno e sono partita da questa ma ovviamente non funziona e mi dice che è stato scritta una sottoquery che restituisce più risultati.
SELECT contatti.matricola, contatti.nome, Materiale.idmateriale
FROM contatti, Materiale
WHERE contatti.Servizio = 'Interno' AND (SELECT consegne.Matricola, DateDiff("yyyy",[data di consegna],date()) AS Diff 
                                         FROM consegne, contatti) <= materiale.[ricambio previsto interno];

Spero sia abbastanza chiaro e ringrazio in anticipo a chi riesce a darmi una mano.

4 Risposte

  • Re: Query di inserimento dati tra più tabelle

    Ciao.

    Sinceramente non ho proprio capito quello che materialmente ti occorre.
    puoi fare un esempio pratico?
    Grazie
  • Re: Query di inserimento dati tra più tabelle

    Lo schema delle 3 tabelle "forse" è chiaro. Potresti esplicitare le relazioni che le legano?
  • Re: Query di inserimento dati tra più tabelle

    Tra contatti e consegne c'è una relazione 1 a molti in quanto un contatto, identificato con la matricola, può ricevere più materiale.
    Cerco di spiegare meglio quello che vorrei ottenere.
    Un contatto può prestare servizio interno oppure esterno, questo campo è presente nella tabella del materiale, in base al servizio il ricambio è previsto in anni di quell'articolo se esterno o interno, quindi io vorrei sapere a chi e a quale articolo, confrontando la data di consegna con la data di ricambio previsto dell'articolo in anni, è idoneo al ricambio dell'articolo.
    Quindi penso che mi servirebbe una query che prenda la matricola di un articolo consegnato, confronti la data di oggi con la data di consegna per sapere quanti anni siano passati, poi se la matricola presta servizio esterno ad esempio confronti gli anni trascorsi con il campo della tabella "ricambio previsto esterno" di quell'articolo e se è maggiore mi dia come risultato la matricola, l'id del materiale.
  • Re: Query di inserimento dati tra più tabelle

    Proccedi per gradi, realizza prima una query fra le due tabelle (consegne - materiale) e come hai indicato: "che prenda la matricola di un articolo consegnato, confronti la data di oggi con la data di consegna per sapere quanti anni siano passati,"
    Verifica i dati ed imposta un criterio in base agli anni trascorsi che ti interessano.
    Quindi questa query la metti in relazione con la tabella contatti, in modo da deerminare, in base alla matricola, la prestazione del servizio che soddisfi il requisito.
Devi accedere o registrarti per scrivere nel forum
4 risposte