none
Update con dati da altra tabella RRS feed

  • Domanda

  • Ho una tabella di anagrafiche clienti (anagra) e una tabella con i dati di vendita TESTMAG.

    Devo aggiornare un campo della tabella anagra con la data del primo ddt di vendita preso dalla tabella TESTMAG.

    Ho creato prima una SELECT e funziona perfettamente, mi visualizza le date dei primi DDT di vendita correttamente.

    Se vado a fare l'UPDATE, mi aggiorna soltanto il primo record e non i 3208 record che ci sono in anagra.

    Di seguito l'UPDATE che ho creato. Non capisco come aggiornare tutti i record della tabella anagra.

    Grazie per l'aiuto

    update anagra set an_hh1ddt=a.tm_datdoc 
    from (select top(1) tm_datdoc, tm_conto, testmag.codditt  
          from anagra inner join testmag on testmag.tm_tipork='B' and testmag.tm_conto=anagra.an_conto and testmag.codditt=anagra.codditt 
    	  where anagra.an_tipo='C' and an_codmast=901 
          order by testmag.tm_conto, testmag.tm_datdoc) as a
    where anagra.an_conto=a.tm_conto and anagra.codditt=a.codditt

    mercoledì 21 aprile 2021 08:19

Risposte

  • Ciao,

    riscrivi più semplicemente l'update senza usare la from con la join portando tutto in subquery:

    update anagra 
    set an_hh1ddt=(select top(1) tm_datdoc
    				  from	testmag 
    				  where testmag.tm_tipork='B' 
    					and testmag.tm_conto=anagra.an_conto 
    					and testmag.codditt=anagra.codditt 
    				  order by testmag.tm_conto, testmag.tm_datdoc) 
    where 
    anagra.an_tipo='C' 
    and anagra.an_codmast=901 
    

    Giorgio

    mercoledì 21 aprile 2021 14:20

Tutte le risposte

  • Ciao,

    riscrivi più semplicemente l'update senza usare la from con la join portando tutto in subquery:

    update anagra 
    set an_hh1ddt=(select top(1) tm_datdoc
    				  from	testmag 
    				  where testmag.tm_tipork='B' 
    					and testmag.tm_conto=anagra.an_conto 
    					and testmag.codditt=anagra.codditt 
    				  order by testmag.tm_conto, testmag.tm_datdoc) 
    where 
    anagra.an_tipo='C' 
    and anagra.an_codmast=901 
    

    Giorgio

    mercoledì 21 aprile 2021 14:20
  • Buongiorno Giorgio,

    più semplice di quello che pensavo.

    Grazie, verificato e funziona.

    Buona giornata

    giovedì 22 aprile 2021 08:29