Query eliminazione

di il
10 risposte

Query eliminazione

Ciao,
devo cancellare i recod di una tabella "A" che ha lo stesso Id di un'altra tabella "B", avevo pensato di utilizzare una query di eliminazione, utilizzando come criterio di selezione un'altra query che filtra l'Id della tabella "B", ma mi richiede "immettere valore parametro".

10 Risposte

  • Re: Query eliminazione

    Pippo42 ha scritto:


    devo cancellare i recod di una tabella "A" che ha lo stesso Id di un'altra tabella "B", avevo pensato di utilizzare una query di eliminazione, utilizzando come criterio di selezione un'altra query che filtra l'Id della tabella "B", ma mi richiede "immettere valore parametro".
    Riporta il testo della query che hai scritto sino ad ora, così possiamo verificarla ed eventualmente suggerire le correzioni.
  • Re: Query eliminazione

    DELETE [A].Id
    FROM [A]
    WHERE ((([A].Id)=[B]![Id]));
  • Re: Query eliminazione

    Pippo42 ha scritto:


    DELETE [A].Id
    FROM [A]
    WHERE ((([A].Id)=[B]![Id]));


    Manca la parte in cui definisci che cos'è "B", quindi è normale che ti chieda di cosa si tratta.

    Puoi provare questo statement:
    
    DELETE FROM A
    INNER JOIN B ON A.Id = B.Id
    
    In alternativa,
    
    DELETE FROM A
    WHERE A.Id IN (SELECT B.Id FROM B)
    
    Se parliamo di pochi record, le performance non dovrebbero avere particolari problemi in entrambi i casi, quindi privilegia la più leggibile.

    Ciao!
  • Re: Query eliminazione

    Pippo42 ha scritto:


    devo cancellare i recod di una tabella "A" che ha lo stesso Id di un'altra tabella "B"
    Non so se Alka sta proponendo in SQL la stessa cosa che io dirò in altre parole:
    1. Crea una query di selezione che mette in relazione le tabelle A e B in base al campo ID
    2. Trascina nella griglia i campi da eliminare
    3. Poi clicca in alto su "query di eliminazione"
    4. Esegui la query una volta.
    Non ho testato, ma prova.
  • Re: Query eliminazione

    Grazie per collaborazione, risolvo con la query.
    Ciao
  • Re: Query eliminazione

    Quando eseguo la query di eliminazione, errore "specificare la tabella contenente di i record da eliminare".
  • Re: Query eliminazione

    Leggi qui per creare ed eseguire una "query di eliminazione"
    https://support.microsoft.com/it-it/office/creare-ed-eseguire-una-query-di-eliminazione-6da65fe1-0fc7-4a64-8ef0-c052cd4c3ec5
  • Re: Query eliminazione

    Ho seguito le indicazioni: "Per correggere l'errore, impostare la proprietà Record univoci della query su Sì." ma ancora non funziona.
  • Re: Query eliminazione

    Pippo42 ha scritto:


    Ho seguito le indicazioni: "Per correggere l'errore, impostare la proprietà Record univoci della query su Sì." ma ancora non funziona.
    Siccome suppongo che "A" e "B" non siano i reali nomi delle tabelle, prova a fornirci la query attuale e qualche informazione sulla struttura delle tabelle, o quantomeno i tipi dei campi che stai confrontando, giusto per capire meglio il contesto.

    Se non è un campo chiave, magari c'è da aggiungere un DISTINCT (solo una ipotesi), ma senza ulteriori informazioni si fatica.

    Ciao!
  • Re: Query eliminazione

    Risolto,
    ho seguito le indicazioni dell'help on line.
    Questa è la soluzione:

    Causa possibile:
    Non hai digitato un asterisco per ogni tabella nei predicati ALL, DISTINCT, DISTINCTROW. Invece, hai digitato i nomi dei campi (ad esempio, Customers.Addressinvece di Customers.*).

    Grazie a tutti per l'aiuto.
Devi accedere o registrarti per scrivere nel forum
10 risposte