Aggiornare dati in tabella - cerco suggerimenti

di il
16 risposte

Aggiornare dati in tabella - cerco suggerimenti

Salve a tutti e buona domenica piovosa

così ho colto l'occasione per agggiornare il db Access che uso in ufficio!

avrei un problema su come aggiornare il campo di una tabella confrontando il contenuto di due campi.

ho già fatto varie query di aggiornamento e tutto funziona finchè i dati da confrontare sono uguali, con la nuova query dovrei aggiornare confrontando due campi su tabella diverse, dove tabella A ha il campo sigla di 2 caratteri, mentre tabella B ha il campo sigla di 7 caratteri, dove solo i primi due sono uguali al campo di tabella A…il resto è una sequenza alfanumerica

quando trovo i due dati uguali devo ovviamente aggiornare il campo Note della tabellaB  pcopiando quanto ho in Note della tabella A

come posso fare a risolvere la questione ???

PS:fino ad ora ho sempre lavorato con i classici wizard che propone Access…ma non prendo paura de devo far qualcosa in visualizzazione SQL

graie per eventuali suggerimenti

Valter

16 Risposte

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Credo che sarebbe il caso che mostrassi tabelle, campi e relazioni nel db.

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Ecco qui…speriamo sia più chiara la cosa…

    tabella A ho la sigla a 2 cifre mentre in tabella B ho la sigla intera (2cifre, spazio, 5caratteri alfanumerici) 

    vorrei aggiornare “note_compagnia” della tabella B quando i dati della sigla sono uguali nelle prime due cifre di tabella B

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Non ho ben capito a cosa serve quello che stai facendo… ma ad ogni modo potresti usare l'operatore Like nel criterio della query.

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Stavo provando con un “ Left([sigla_completa];2) ”  tra i criteri di tabellaB

    ma con il Like come faccio a “fermarmi” ai primi due caratteri del campo sigla_completa ???

    PS: son dati statistici che adesso faccio a mano…, la tabella B viene aggiornata ogni giorno…son centinaia di righe al giorno…

    la tabellaA mi serve come riferimento ….poi prima di chiudere il DB lancio la query che mi aggiorna i dati nella tabellaB…

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Devi utilizzare anche la funzione Left. Cosa intendi quando dici che stai provando con Left? Non funziona?

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Esatto, ho messo Left([sigla_completa];2)  tra i criteri di tabellaB ma se la eseguo non mi aggiorna nulla

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    11/02/2024 - valtere ha scritto:


    Stavo provando con un “ Left([sigla_completa];2) ”  tra i criteri di tabellaB

    La funzione Left è corretta, ma non la devi scrivere nel Criterio. In visualizzazione struttura query aggiungi una colonna dove scrivi qualcosa del genere:

    XXsigla: Left([sigla_completa];2)

    poi sfrutti il campo XXsigla per proseguire nei tuoi intenti.

    Nell'immagine della visualizzazione struttura query hai messo un join tra due campi incompatibili. [sigla_2cifre] non avrà mai gli stessi valori di [sigla_completa].

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Scusa ma se nel criterio scrivi:

    Left([sigla_completa];2) Like Left([note compagnia];2)

    Non funziona?

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Ho eliminato il join tra le tabelle 

    quando eseguo di dice che aggiornerà 20 righe, anche se in realtà in tabella B ne ho solo 5, mentre in tabella A sono 5 (5 x 4 =20)

    l'aggiornamento della tabella B ha prodotto che tutti i record hanno la medesima compagnia, anche cambiando il valore 2 mi scrive sempre Ryanair 

    forse faccio prima a prendermi i dati dello scorso anno, mi filtro tutti i voli, estrapolo il campo sigla_completa  e faccio la query di aggiornamento con il join tra le due tabelle (le voci sono uguali)… 

    però era una sfida personale…magari imparato il principio di funzionamento mi tornava utile per altre cose

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    11/02/2024 - Antony73 ha scritto:


    Scusa ma se nel criterio scrivi:

    Left([sigla_completa];2) Like Left([note compagnia];2)

    Non funziona?

    cioè fatto così ??

    non va, ovvero aggiorna tabella B ma ci scrive sempre Ryanair 

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Secondo me non devi creare un campo calcolato. Quella espressione la devi mettere nel criterio di uno dei due campi della query che hai mostrato prima.

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Infatti ho notato che ci ha messo l'espr davanti…

    sicuramente ho capito male io come costruire la query…ho riprovato così…ma non aggiorna nulla

    per oggi basta…domani riprendo in ufficio ….

    grazie a tutti per le preziose informazioni

    Valter - Venezia

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Ho riletto. Ho sbagliato io. La condizione di criterio deve essere:

    Left([sigla_completa];2) Like Left([sigla_2cifre];2)

  • Re: Aggiornare dati in tabella - cerco suggerimenti

    Puoi provare così:

    UPDATE TabellaA INNER JOIN (SELECT Left([sigla_completa],2) AS sigla_2cifre, TabellaB.note_compagnia FROM TabellaB) AS TabB ON TabellaA.sigla_2cifre = TabB.sigla_2cifre SET TabB.note_compagnia = [TabellaA].[note_compagnia];
Devi accedere o registrarti per scrivere nel forum
16 risposte