es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eliminar registros de una tabla en base a una unión interna.

Tengo dos tablas en la base de datos de Oracle llamadas collection y collection_h. Tengo que eliminar todos los registros de la tabla collection_h que tengan los mismos campos que la tabla collection.

Tengo que eliminar todos los registros de la tabla collection_h que resulten de la siguiente consulta:

select * from collection inner join collection_h on
collection.pos_protocol_id  = collection_h.pos_protocol_id and
collection.terminal_pos_number = collection_h.terminal_pos_number and
collection.cb_file_number = collection_h.cb_file_number and
collection.cb_block_number = collection_h.cb_block_number and
collection.is_stan_batch = collection_h.is_stan_batch and
collection.is_transaction_date = collection_h.is_transaction_date and
collection.is_stan_trans = collection_h.is_stan_trans;
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar todos los registros de la tabla collection_h que cumplan las condiciones mencionadas anteriormente, puedes utilizar el siguiente comando SQL:

    DELETE FROM collection_h
    WHERE EXISTS (
        SELECT 1 FROM collection
        WHERE collection.pos_protocol_id = collection_h.pos_protocol_id
        AND collection.terminal_pos_number = collection_h.terminal_pos_number
        AND collection.cb_file_number = collection_h.cb_file_number
        AND collection.cb_block_number = collection_h.cb_block_number
        AND collection.is_stan_batch = collection_h.is_stan_batch
        AND collection.is_transaction_date = collection_h.is_transaction_date
        AND collection.is_stan_trans = collection_h.is_stan_trans
    );
    

    Este comando utiliza una subconsulta con EXISTS para verificar si hay registros coincidentes en la tabla collection antes de eliminarlos de la tabla collection_h. Una vez que se cumplan las condiciones, las filas requeridas se eliminarán de la tabla collection_h.

Comments are closed.