Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Usar DELETE con dondiciones ?

Estas en el tema de Usar DELETE con dondiciones ? en el foro de Mysql en Foros del Web. Les cuento mi problema... Tengo una tabla llamada "venta_encabezado" en el cual estan almacenadas las Facturas y las ordenes de ventas... Las facturas tienen aproximadasmente ...
  #1 (permalink)  
Antiguo 08/01/2016, 18:04
Avatar de cleaner86  
Fecha de Ingreso: septiembre-2013
Ubicación: Santiago
Mensajes: 20
Antigüedad: 10 años, 7 meses
Puntos: 0
Información Usar DELETE con dondiciones ?

Les cuento mi problema...

Tengo una tabla llamada "venta_encabezado" en el cual estan almacenadas las Facturas y las ordenes de ventas... Las facturas tienen aproximadasmente 90mil facturas y las ordenes de venta son aprox 40mil.

Lo que quiero hacer es eliminar 80mil registros de facturas (respaldandolas obviamente) PERO... no se comi decirle a DELETE que solo sean las facturas (con codigo FA) a eliminar, la sintaxis que he probado es

Código SQL:
Ver original
  1. DELETE FROM venta_encabezado WHERE Numdocumento <= 80000;

Pero obviamente tambien me borra las ordenes de venta, que solo son 40mil... es decir, las paso a borrar todas.

Espero haberme dado a entender bien, es un poco complejo aun para mi este tema.

Última edición por gnzsoloyo; 08/01/2016 a las 18:34
  #2 (permalink)  
Antiguo 08/01/2016, 18:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Usar DELETE con dondiciones ?

Cita:
Pero obviamente tambien me borra las ordenes de venta, que solo son 40mil... es decir, las paso a borrar todas.
Por supuesto, porque le estás diciendo que borre todo lo que tenga un valor menor o igual a un valor dado... No le estás poniendo restricciones.
¿No te parece que es simple razonar que lo que tienes que hacer es indicarle que borre los registros cuyo valor sea entre X e Y?

Creo que con sólo pensarlo medio segundo te darás cuenta de cual es la solución. Es exactamente la misma que usarías en cualquier lenguaje de programación pafra un IF entre dos valores, uno menor y otro mayor...

¿Como lo escribirías?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/01/2016, 18:55
Avatar de cleaner86  
Fecha de Ingreso: septiembre-2013
Ubicación: Santiago
Mensajes: 20
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Usar DELETE con dondiciones ?

Eso es lo que estoy intentando preguntarles
  #4 (permalink)  
Antiguo 08/01/2016, 19:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Usar DELETE con dondiciones ?

Intenta hacerlo. Es demasiado básico como para que no lo puedas razonar por ti mismo...

¿Sabes programar en algún lenguaje, donde uses condiciones?
No pretendo molestarte, sólo que no entiendo como puede ser que no lo veas...

Haz lo siguiente: pon la condición con el rango menor, es decir, escribe el DELETE para que borre todo lo que sea mayor a lo que quieres conservar, y partamos de alli.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 09/01/2016, 08:47
Avatar de cleaner86  
Fecha de Ingreso: septiembre-2013
Ubicación: Santiago
Mensajes: 20
Antigüedad: 10 años, 7 meses
Puntos: 0
Información Respuesta: Usar DELETE con dondiciones ?

Punto uno, no tengo por que saber esto, no es mi trabajo, solo intento cubrir a un compañero de trabajo, punto dos, si no van a prestar ayuda (razon principal de un foro como este) ahorrense los comentarios.

Y claro, si lo se.. lo que no se es como decirle a DELETE que descrimine entre OV y FA ... Leyendo por internet leí que puedo utilizar un AND luego de WHERE.
Código MySQL:
Ver original
  1. DELETE FROM venta_encabezado WHERE Numdocumento <= 80000 AND TIPdoc = FA;
Sería correcto? (aun no lo puedo probar)

Última edición por gnzsoloyo; 11/01/2016 a las 05:51
  #6 (permalink)  
Antiguo 09/01/2016, 09:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Usar DELETE con dondiciones ?

Punto uno: SI vas a cubrir las tareas de otro, tienes que estar capacitado para ellas. De lo contrario lo harás responsable de tus errores.
Punto dos: Con el tiempo que tienes en FDW ya deberías saber que la idea no es proveer de soluciones regaladas, sino ayudarte a aprender a hacer las cosas. Y en ese contexto siempre debes esperar críticas si no muestras proactividad. Los foros de programadores son meritocráticos, acéptalo. Para aprender el "ABC" están los cursos y los tutoriales.

Finalmente: Si "FA" es un código alfanumérico, debes ponerlo como cadena de texto, si lo pones de otra forma el DBMS lo interpretará como nombre de columna o tabla, lo que te dispararía un error de ejecución:


Código MySQL:
Ver original
  1. DELETE FROM venta_encabezado
  2. WHERE Numdocumento <= 80000 AND TIPdoc = 'FA';

Como ya te habrás dado cuenta, la solución era MUY elemental. NO era posible que no la pudieras deducir por ti mismo... Al menos no si alguna vez programaste algo, en CUALQUIER lenguaje.

Posdata: No respondiste la pregunta de si sabes programar en algun lenguaje.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 09/01/2016, 10:31
Avatar de cleaner86  
Fecha de Ingreso: septiembre-2013
Ubicación: Santiago
Mensajes: 20
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Usar DELETE con dondiciones ?

Ahora entrare al mundo de la programacion, se hacer cosas muy basicas con HTML+CSS y algo de PHP ... de lo ultimo solo lo manejo para hacer pequeñas modificaciones... este año entro a estudiar la carrera de programacion... Mi fuerte es linux


Eso era todo, gracias, solo faltaban las comillas en FA.


Nota: Si sabia que debía discriminar las facturas de las ordenes de ventas(FA de OV) pero no sabia como decirselo a DELETE.

Etiquetas: delete, registros, tabla, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:51.