Query di aggiornamento

di
Anonimizzato14826
il
4 risposte

Query di aggiornamento

Ho due o più tabelle uguali , una più aggiornata dell'altra.
Mi servirebbe una query di aggiornamento per
1) aggiungere i record mancanti
2) riempire i campi vuoti dei record non aggiornati
3) modificare dei campi non aggiornati
Quale tipo di query scegliere e come configurarla ?

In caso che le tabelle invece hanno contenuti di dati uguali ma con campi di denominazione diversa come bisogna procedere ?

4 Risposte

  • Re: Query di aggiornamento

    L'ideale sarebbe conoscere esattamente i tuoi campi e decidere la strategia migliore da applicare. Capita anche a me di impantanarmi in qualcosa del genere e, veramente, essere certi di aver impostato la query giusta, non lo sai mai. Secondo me puoi percorrere molte strade, dalle più spartane alle più metodiche. Io procederei a pezzettini e non con una query unica.

    Navajos3 ha scritto:


    1) aggiungere i record mancanti
    Query di accodamento. Ripeto, non sappiamo quale potrebbe essere il campo cardine che stabilirebbe ciò. Prova a fare prima una "query di ricerca dati non corrispondenti" (esiste una procedura guidata), poi la trasformi in query di accodamento.

    Navajos3 ha scritto:


    2) riempire i campi vuoti dei record non aggiornati
    3) modificare dei campi non aggiornati
    Fossi io, se la situazione è troppo spulciante, preferisco procedere a mano con singoli copia/incolla di record oppure colonne (previa opportuna filtrazione)

    Navajos3 ha scritto:


    In caso che le tabelle invece hanno contenuti di dati uguali ma con campi di denominazione diversa come bisogna procedere ?
    Se si tratta di query di accodamento, puoi tranquillamente decidere tu, attraverso l'impostazione "Accoda a", il campo opportuno.
  • Re: Query di aggiornamento

    Ti servono 2 query, una per l'aggiornamento, l'altra per l'accodamento dei record mancanti.

    Negli esempi sotto io ho usato un campo chiave (PRIMARY KEY) ma è ovvio che tu dovrai impostare la relazione tra le due tabelle utilizzando i campi che permettano di identificare univocamente lo stesso record in entrambe.
    Potrebbe essere Cognome+Nome, oppure un ID, oppure un Codice univoco, ecc...
    Questo lo sai solo tu, che conosci la struttura delle tue tabelle.


    AGGIORNAMENTO
    Devi creare un JOIN sui campi chiave che identificano univocamente lo stesso record nelle due tabelle, specificando per ogni singolo campo nella tabella 1 (T1) il campo da cui prelevare il valore dalla tabella 2 (T2):
    
    UPDATE T1 INNER JOIN T2 ON T1.CampoChiave = T2.CampoChiave 
    SET T1.campo1 = T2.CampoX
    , T1.campo2 = T2.CampoY
    
    Ho scoperto che se si esegue la query da VB6 si verifica un errore di sintassi.
    Per risolvere bisogna indicare le parentesi quadre nel secondo campo, così :
    SET T1.campo1 = [T2].[CampoX]
    Non chiedetemi perché.



    ACCODAMENTO
    La sintassi è:
    
    INSERT INTO T1  SELECT T2.Campo1, T2.Campo2, ...  
    FROM T2 WHERE T2.CampoChiave NOT IN (SELECT T1.CampoChiave FROM T1)
    
    Un esempio pratico:
    supponiamo di avere due tabelle clienti di nome: Clienti e Clienti2
    Ora vogliamo aggiungere i clienti presenti in Clienti che non esistono in Clienti2, ma oltre a questo in Clienti2 devo anche valorizzare il campo RagioneSociale (Cognome + Nome) che non esiste in Clienti per devo usare un ALIAS (così puoi capire come copiare i valori da campi con nomi diversi).
    
    INSERT INTO Clienti2  
    SELECT Clienti.Cognome, Clienti.Nome, (Clienti.Cognome+' '+Clienti.Nome) AS RagioneSociale
    FROM Clienti 
    WHERE Clienti.IDCliente NOT IN (SELECT Clienti2.IDCliente FROM Clienti2)
    
    S.E. &. O.

  • Re: Query di aggiornamento

    In access 2010 è possibile realizzare una query dati non corrispondenti ?
  • Re: Query di aggiornamento

    Deve esserci per forza. Dai un'occhiata alla tua guida in linea, la denominazione esatta è "query ricerca dati non corrispondenti". Dalla lista Query, dovresti avere un pulsante "Nuovo" o "Nuova query", dovrebbe proporti varie scelte tra cui la Creazione guidata query ricerca dati non corrispondenti.
Devi accedere o registrarti per scrivere nel forum
4 risposte