View Full Version : [Access] - Aiuto su query
lucausa75
06-05-2020, 07:19
Salve ragazzi,
h bisogno di un piccolo aiuto per una query su un database di access.
Ho due tabelle chiamate TABELLA_A e TABELLA_B che hanno in comune il campo KEY.
Tramite una query o altra funzione interna ad access ho necessità di popolare il campo COST della TABELLA_A.
https://i.postimg.cc/7ZtkvTSv/2020-05-06-07-47-11-Start.png (https://postimages.org/)
Se avessi usato excel avrei risolto facilmente con un cerca verticale ma utilizzando access non riesco a trovare una soluzione.
Mi aiutate?
Grazie
wingman87
06-05-2020, 09:51
Non so se in Access si può ma in SQL si farebbe così:
update tabella_a set cost = tabella_b.cost
from tabella_a join tabella_b on tabella_a.key = tabella_b.key
Nota: sicuro di dover replicare il dato tra le due tabelle? Non è meglio creare una view che mostra il join tra le due tabelle? In questo modo devi manutenere il dato in una sola tabella. Se sei interessato al tema, cerca "normalizzazione database", ad esempio questo post in inglese la spiega per sommi capi -> LINK (https://www.sqlshack.com/what-is-database-normalization-in-sql-server/)
lucausa75
06-05-2020, 10:20
Non so se in Access si può ma in SQL si farebbe così:
update tabella_a set cost = tabella_b.cost
from tabella_a join tabella_b on tabella_a.key = tabella_b.key
Nota: sicuro di dover replicare il dato tra le due tabelle? Non è meglio creare una view che mostra il join tra le due tabelle? In questo modo devi manutenere il dato in una sola tabella. Se sei interessato al tema, cerca "normalizzazione database", ad esempio questo post in inglese la spiega per sommi capi -> LINK (https://www.sqlshack.com/what-is-database-normalization-in-sql-server/)
Grazie per il suggerimento.
Invece se le tabelle sono come a seguire:
https://i.postimg.cc/SxxkTYg9/2020-05-06-11-16-46-Start.png (https://postimages.org/)
Come faccio a inserire il valore COST all'interno della TABELLA_A in funzione del valore CODE che corrisponde al campo della TABELLA_B?
Mi servirebbe una query select che funziona come il cerca verticale evidenziato
Grazie
wingman87
06-05-2020, 11:24
Non puoi fare il join tra il nome di una colonna e il valore di un campo.
Quello che puoi fare è scrivere un update per ogni colonna, ad esempio:
update tabella_a set cost = tabella_b.TV
from tabella_a join tabella_b on tabella_a.key = tabella_b.key
where tabella_a.code = 'TV'
lucausa75
06-05-2020, 13:03
Non puoi fare il join tra il nome di una colonna e il valore di un campo.
Quello che puoi fare è scrivere un update per ogni colonna, ad esempio:
update tabella_a set cost = tabella_b.TV
from tabella_a join tabella_b on tabella_a.key = tabella_b.key
where tabella_a.code = 'TV'
Grazie per il consiglio ma alla fine ho risolto con la funzione DLookpup interna ad access ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.