Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Errore di sintassi con UPDATE

  1. #1
    easterone non è in linea Novello
    Ciao ragazzi,

    sto cercando di copiare il contenuto dei dati della tabella Conteggio_Ingressi nella tabella (strutturata ugualmente) BackupAllDateINexcel imponendo come criterio di ricerca che le date siano coincidenti ma mi risultata un errore di sintassi eppure dovrebbe essere corretto!
    qualcuno riesce a capire dov'è l'errore? perchè dal sito msdn non mi pare di vedere differenze nella sintassi!!
    UPDATE  BackupAllDateINexcel
    SET [BackupAllDateINexcel].*= [Conteggio_Ingressi].*
    WHERE BackupAllDateINexcel.d_DataIN = Conteggio_Ingressi_Reparto.d_DataIN;
    

  2. #2
    monello non è in linea Scribacchino
    Parli di MS SQL oppure di MS ACCESS ... ? Le tabelle sono relazionate ?
    Non vedo INNER JOIN ...

    UPDATE Tabella1
    INNER JOIN Tabella2 ON Tabella1.ID_Tab2 = Tabella2.ID
    SET Tabella1.CampoTab1 = 3
    WHERE Tabella2.CampoTab2 = 'Pippo'

    guarda qui : http://forum.masterdrive.it/microsof...n-where-15210/
    ℹ️ Leggi di più su monello ...

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Il [SET] non supporta[*] per indicate tutti i campi...
    Poi non capisco cosa sia [Conteggio_Ingressi_Reparto.d_DataIN] e da dove arrivi... visto che stai operando nella Tabella [BackupAllDateINexcel]..?
    ℹ️ Leggi di più su @Alex ...

  4. #4
    easterone non è in linea Novello
    Quote Originariamente inviato da monello Visualizza il messaggio
    Parli di MS SQL oppure di MS ACCESS ... ? Le tabelle sono relazionate ?
    Non vedo INNER JOIN ...

    UPDATE Tabella1
    INNER JOIN Tabella2 ON Tabella1.ID_Tab2 = Tabella2.ID
    SET Tabella1.CampoTab1 = 3
    WHERE Tabella2.CampoTab2 = 'Pippo'

    guarda qui : http://forum.masterdrive.it/microsof...n-where-15210/
    Sto usando access 2007 per scrivere la query quindi immagino sia MS ACCESS;
    le tabelle non sono relazionate; hanno solo una struttura uguale ma non c'è un campo ID che ne identifichi i record;
    la tabella di destinazione (Tabella2) ha già un numero di record inserito che però contengono dati solo in un campo (cioè il campo data (formato date/time), gli altri (stessi identici campi sia come nome che come formato) sono vuoti.
    Io voglio modificare i campi della Tabella2 in modo che in essa vengano modificati i campi con il contenuto dei campi dei record della Tabella1 per le date uguali, lasciando come 0 i restanti valori.

    La join non serve a fare un prodotto cartesiano? perchè in alternativa ho trovato questa soluzione su un'altro sito dove riporto cosa spiega
    che però continua a dare un errore di sintassi nella posizione che evidenzio:

    SQL UPDATE - Using SQL EXISTS Clause example
    
    You can also perform more complicated updates in SQL.
    
    You may wish to update records in one table based on values in another table. Since you can't list more than one table in the SQL UPDATE statement, you can use the SQL EXISTS clause.
    
    For example:
    
    UPDATE suppliers
    SET supplier_name = (SELECT customers.name
                         FROM customers
                         WHERE customers.customer_id = suppliers.supplier_id)
    WHERE EXISTS (SELECT customers.name
                  FROM customers
                  WHERE customers.customer_id = suppliers.supplier_id);
    
    tengo presente come mi è stato detto che non posso usare l'asterisco con UPDATE, lo metto solo per indicare che io voglio modificare tutti i campi!
    UPDATE BackupAllDateINexcel
    SET BackupAllDateINexcel'* = (SELECT Conteggio_Ingressi_Reparto.*
                         FROM Conteggio_Ingressi_Reparto
                         WHERE Conteggio_Ingressi_Reparto.d_DataRicovero = BackupAllDateINexcel.d_DataRicovero)
    WHERE EXISTS (SELECT Conteggio_Ingressi_Reparto
                  FROM Conteggio_Ingressi_Reparto
                  WHERE Conteggio_Ingressi_Reparto.d_DataRicovero = BackupAllDateINexcel.d_DataRicovero);
    
    L'errore è che non riconosce BackupAlldateINexcel.d_DataRicovero as a valid field name or expression
    Ultima modifica di easterone; 17-01-2013 15:14 

  5. #5
    easterone non è in linea Novello
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Il [SET] non supporta[*] per indicate tutti i campi...
    Poi non capisco cosa sia [Conteggio_Ingressi_Reparto.d_DataIN] e da dove arrivi... visto che stai operando nella Tabella [BackupAllDateINexcel]..?
    doh, quindi devo inserire manualmente tutti i campi che vanno copiati?
    Conteggio_Ingressi_reparto.d_DataIN è il campo della tabella con cui voglio operare il confronto e, se le date sono uguali, dalla quale voglio prelevare il record (cioè tutti i campi di quella riga) e inserirli in backupalldatain, modificando il record corrispondente(cioè backupalldatain)

    Faccio presente una cosa che stupidamente non ho detto! backupalldatain è una tabella, conteggio_ingressi_reparto è il risultato di una query di campi incrociati!!
    Esempio:
    da Tab 1 ( i valori dei campi sono a destra, i campi sono quelli di sinistra, rappresenta un solo record!)
    data             04/05/2000
    reparto 1              3
    reparto 2              4
    
    da Tab 2
    data           04/05/2000
    reparto 1            0
    reparto 2            0
    
    Poichè la data è uguale copia i valori reparto1 e reparto 2 da tab1 in tab2;
    
    ELSE (se non esiste il giorno 05/05/2000 in tab 1)
    
    non modificare la data e lascia in tab2
    data             05/05/2000
    reparto 1              0
    reparto 2              0
    
    è un pò più chiaro?
    Ultima modifica di easterone; 17-01-2013 15:06 

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. [VS2010] Errore di sintassi nell'istruzione UPDATE
    Da dolcissimo nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 06-12-2011, 02:39
  2. Sintassi quey UPDATE su più righe
    Da orebil68 nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 05-10-2009, 08:39
  3. errore di sintassi nell'espressione update
    Da mattoneo nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 11-11-2008, 18:08
  4. vb.net"2005" :Errore di sintassi SQL UpDate
    Da UbySoft71 nel forum Visual Basic .Net
    Risposte: 9
    Ultimo Post: 23-05-2008, 23:07
  5. [C++] errore di sintassi
    Da killer0007 nel forum C/C++
    Risposte: 12
    Ultimo Post: 17-10-2005, 08:54