Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    aiuto per SQL

    Ho 2 tabelle: operativo e inlavorazione. Devo inserire nella prima (operativo) i record non presenti nella seconda e cancellare dalla seconda (inlavorazione) i record non presenti nella prima

    Ho trvato un testo che riportava una SQL (di selezione) che sembrava utile, ma non riesco a farla funzionre:
    SELECT * FROM inlavorazione INL WHERE NOT EXIST (SELECT * FROM operativo OP WHERE INL.campo1=OP.campo1 AND INL.campo2=OP.campo2)

    Potete aiutarmi?

    Ale

  2. #2
    l'istruzione che devi utilizzare è

    INSERT INTO OPERATIVO(CAMPO1, CAMPO2, CAMPO3, ...)
    SELECT INL.CAMPO1, INL.CAMPO2,.....
    FROM OPERATIVO INNER JOIN INL ON INL OPERATIVO.CAMPO1 <> INL.CAMPO1

    prova se funziona ora non ricordo bene la sintassi.

    Ciao
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  3. #3
    Ciao Genius7115,
    ho provato questa:

    "INSERT INTO Operativo (Data_Richiesta2, Da, Oggetto_e_mail, Folder) SELECT InLavorazione.Data_Richiesta2, InLavorazione.Da, InLavorazione.Oggetto_e_mail, InLavorazione.Folder FROM Operativo INNER JOIN InLavorazione ON InLavorazione Operativo.Da <> InLavorazione.Da;"

    Mi da un errore:
    Errore di sintassi (operatore mancante) nell'espressione della query 'InLavorazione Operativo.Da <> InLavorazione.Da'


    Però non capisco il senso di
    InLavorazione ON InLavorazione

    Comunque grazie

    Ale

  4. #4


    Scusami ho mancato un punto

    ON INLAVORAZIONE.OPERATIVO

    ma aspetta, questa non è la query definitiva che ti occorre è solo la base poi devi strutturarla meglio.
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  5. #5
    rettifico ancora devi levare INLAVORAZIONE che è stato un errore di battitura ma devi mettere prima il campo di INLAVORAZIONE e poi paragonarlo a quello di OPERATIVO

    INNER JOIN INLAVORAZIONE ON INLAVORAZIONE.CAMPO1 <> OPERATIVO.CAMPO1
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  6. #6
    Funziona, ma non fa quello che mi serve.
    Sicuramente mi sono spiegato male io.
    La query che ho usato è questa:

    "INSERT INTO Operativo (Data_Richiesta2, Da, Oggetto_e_mail, Folder) SELECT InLavorazione.Data_Richiesta2, InLavorazione.Da, InLavorazione.Oggetto_e_mail, InLavorazione.Folder FROM Operativo INNER JOIN InLavorazione ON (InLavorazione.Data_Richiesta2 <> Operativo.Data_Richiesta2 AND InLavorazione.Da <> Operativo.Da AND InLavorazione.Oggetto_e_mail <> Operativo.Oggetto_e_mail AND InLavorazione.Folder <> Operativo.Folder);"

    In pratica io ho una tabella (InLavorazione) che viene riscritta (cioè cancellata e ripopolata) da outlook.
    Operativo è una tabella che di fatto è la copia di InLavorazione solo che ha un contatore più altri campi che mi servono per implementare delle pagine asp .
    Quindi l'esecuzione della query dovrebbe consentirmi di
    1) inserire i nuovi record di InLavorazione e
    2) cancellare i record di Operativo non più presenti in InLavorazione.
    anche con 2 query diverse.

    .... un pò complicato da spiegare

    Forse le query che mi servono sono anche più semplici.

    Comunque ciao e grazie

    Ale

  7. #7
    Mi sembra di capire che i record di Inlavorazione vanno copiati tutti in operativo e poi quelli che non sono presenti in Inlavorazione vanno cancellati ma mi sembra uguale a svuotare la tabella Operativo e riempirla con InLavorazione.

    Se è cosi crea una query di svuotamento e poi utilizza la query precedente opportunamente ripulita della parte selettiva (INNER JOIN)

    Spero di essere stato chiaro.
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  8. #8
    Chiarissimo!

    Però Operativo contiene un'altro campo (PresaInCarico) che viene modificati dall'utente attraverso delle pagine ASP.
    Se cancello e riscrivo la tabella mi perdo tutti i dati del campo PresaInCarico.

    Ale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.