SQL - RETO IMPOSIBLE -Borrar Registros en tablas no relacionadas

   
Vista:

RETO IMPOSIBLE -Borrar Registros en tablas no relacionadas

Publicado por G Cedillo conacego3@gmail.com (2 intervenciones) el 27/08/2015 04:41:02
VAYA QUE ES UN RETO:

Hola me surgio un problemota en mi trabajo y no puedo con el, suplico ayuda por favor:

Tengo una base de datos con la siguientes tablas y campos relacionados:

1 Articulos - CodigoArticulo

2 CodigosAlternos – CodigoArticulo

3 ArticulosAlmacen – CodigoArticulo

4 DetallesTicket – CodigoArticulo y también con los campos Tienda – Departamento – Caja – Folio que la relacionan con la
5 TasasImpuestos –Tienda -Departamento – Caja – Folio y con la
6 DescuentosTickets –Tienda –Departamento - Caja – Folio

7 Compueje – CodigoArticulo

8 DetalleNotasEntrada – CodigoArticulo

Necesito eliminar por ejemplo el registro con CodigoArticulo “9789707110571” de todas las tablas pero la base de datos me obliga que lo elimine primero de la 6 y 5 despues de la 4, 3, 2, 8, 7 en ese orden antes de poder eliminarlo de la tabla principal llamada Articulos que es la 1

Y como notaran las tabla 5 y 6 tienen relación únicamente con la 4 y para seleccionar un registro en estas tablas, que tenga relación con la tabla 4 debo usar los cuatro campos relacionados (Tienda – Departamento – Caja – Folio ) por que por ejemplo hay registros en la 4, 5 y 6 que coinciden en hasta tres campos relacionados ejemplo:

Tienda 1 –Departamento 1 – Caja 1 – Folio 1
Tienda 1 –Departamento 1 – Caja 2 – Folio 1
Tienda 1 –Departamento 1 – Caja 3 – Folio 1

No se mucho de programación SQL mas bien nada, pero lo que si se es que este es un buen reto para expertos, tengo fe que uno de llos lo resolvera, MUCHAS GRACIAS DE ANTEMANO!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RETO IMPOSIBLE -Borrar Registros en tablas no relacionadas

Publicado por Gerardo C. (2 intervenciones) el 27/08/2015 05:18:44
Mi motor es SQL 2012 Express, el campo CodigoArticulo es Alfanumerico los demas mencionados son numericos. Y como les mencione no se mucho de SQL asi que solo he logrado hacerlo mediante comandos basicos usando SELECT, DELETE FROM, WHERE pero de una manera muy basica, por ejemplo para cada tabla lo que hago es primero es

SELECT Art_Codigo from DetallesTicket WHERE Art_Codigo='9789707110571'
para que me muestre los registros de la tabla 4 con este dato y de ahi obtengo los datos tienda 1 departamento 1 caja 1 folio1 y voy a las tablas 5 y 6
para buscar estos registros manualmente y los elimino seleccionandolos con el mouse y presionando delete. cabe señalar que a veces en las tablas 5 y 6 tego que eliminarlas de manera manual mas de 500 registros por que representan 500 tickets en donde se vendio este articulo. (A veces hasta me tardo una hora para eliminar un solo registro con diez tickets)

y para las demas tablas de la 1 a la 8 sin contar la 5 y 6 uso por ejemplo:

DELETE FROM DetallesTicket WHERE Art_Codigo='9789707110571'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RETO IMPOSIBLE -Borrar Registros en tablas no relacionadas

Publicado por markho markho34@hotmail.com (3 intervenciones) el 28/08/2015 21:02:19
buenas tardes , no entiendo la necesidad de eliminar el producto y todas las transaaciones de ese producto no se deberia hacer pero en fin, tenia un problema parecido (lo hago no para eliminar si no para visualizar datos en tablas no relacionadas) lo que hice es agregar un campo en las tablas no relacionadas por ejemplo idarticulo (campo no relacionado) y grabar ese dato cuando se agrega datos a esas tablas recien podras eliminarlo como sabes.

ahora si no puedes modificar tu sistema alli esta el problema si ese el caso para poder ayudarte tendrias que enviar el scrip de esas tablas con algunos datos para simular lo que requieres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar