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

Cambiar el valor de un campo, moviéndolo a otro bajo una condicion

Estas en el tema de Cambiar el valor de un campo, moviéndolo a otro bajo una condicion en el foro de Mysql en Foros del Web. Hola a Todos Mi nombre es Diego, de Chile y necesito ayuda con un filtrado de datos: Tengo una base de dato MySQL en donde ...
  #1 (permalink)  
Antiguo 26/01/2013, 13:16
 
Fecha de Ingreso: enero-2013
Ubicación: santiago de chile
Mensajes: 9
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Cambiar el valor de un campo, moviéndolo a otro bajo una condicion

Hola a Todos
Mi nombre es Diego, de Chile y necesito ayuda con un filtrado de datos:
Tengo una base de dato MySQL en donde estoy almacenando mediante importación de un archivo SCV a una tabla que ya tengo definida (creo correctamente) los tipos de datos que almacena.
Esta es una captura de las columnas:

El problema se presenta ahora:
Tengo el campo “num_sda” y “recurso”, si estos son iguales (para cada fila comparada con las siguientes) necesito que el campo “vb_sda_sist” y el campo “fecha_vb_oc_sis” se cambien de fila a la que cumple la condición anterior que nombre de que “num_sda” = “recurso” y la condición que tenga el campo “num_oc” NO NULO.
Aca se puede apreciar en color rojo a lo que me refiero, ambas filas tienen campos repetidos pero solo 1 de ellas tiene el valor “num_oc”. Esta es la fila que quiero que seleccione para cambiar de lugar los valores de campo “vb_sda_sist” y “fecha_vb_oc_sis” que tienen el campo “num_oc” vacio

Creo que estoy se puede hacer por PHP o MYSQL y este es el proceso que desconozco.
Lo he intentado de muchas maneras y aun no logro resultado
Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 28/01/2013, 08:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Cambiar el valor de un campo, moviéndolo a otro bajo una condicion

Dificil de entender lo que quieres

Estos serian los registros a actualizar...
Código MySQL:
Ver original
  1. SELECT * FROM sda WHERE num_oc IS NOT NULL;

y quieres actualizarlos con datos de otros registros con los cuales tienen dos campos en comun? Cuantos registros puede haber en esas condiciones? Hay alguna forma de discernir cual de ellos hay que usar... son fechas quizas la fecha maxima o la minima....?

Código MySQL:
Ver original
  1. SELECT num_sda, recurso, max(vb_sda_sist), max(fecha_vb_oc_sis)
  2. FROM sda
  3. GROUP BY num_sda, recurso;

esto nos da el maximo de cada fecha y grupo de registros... pero claro el maximo de cada fecha puede venir de registros distintos....

Reg1 2013-01-25 2013-01-01
Reg2 2013-01-24 2013-01-02

Aqui un maximo vendria del registro 1 y el otro del 2 ??? No nos das elementos para saber si eso es correcto o posible ni que hay que hacer en ese caso....

Cita:
...se cambien de fila...
No hay ninguna forma de cambiar de fila las cosas.... En todo caso se puede actualizar una fila con información previamente seleccionada... pero para ello hay que tener claro como seleccinarla de ahí las preguntas que te hacia al principio...

Código MySQL:
Ver original
  1. SELECT num_sda,recurso FROM sda WHERE num_oc IS NOT NULL;
Con esto sabemos cuales hay que actualizar, para cada par num_sda=X,recurso=Y que obtengamos debemos saber que fechas usar....

Código MySQL:
Ver original
  1. SELECT vb_sda_sist,
  2.   fecha_vb_oc_sis
  3. FROM sda
  4. WHERE num_oc IS NULL
  5.   AND num_sda=X
  6.   AND recurso=Y;

Lista de fechas posibles para X,Y


Código MySQL:
Ver original
  1. UPDATE sda
  2.   SET vb_sda_sist=' ....???.....',
  3.         fecha_vb_oc_sis='.... ??....'
  4. WHERE num_oc IS NOT NULL
  5.   AND num_sda=X
  6.   AND recurso=Y;

Actualizacion de X, Y pero no sabemos con que!!!!


Cita:
Creo que estoy se puede hacer por PHP o MYSQL y este es el proceso que desconozco.
Esto se hace con MySql, puesto que vas a actualizar la bbdd, pero como vas ha tener que ejecutar varias sentencias (querys) y ademas unas se tienen que construir en función del resultado de las anteriores, php puede ser una buena herramienta para organizar y construir las peticiones a mysql. Pero antes de nada debes saber exactamente lo que quieres que se haga de una forma univoca para el servidor...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 28/01/2013 a las 08:44

Etiquetas: mysql+php
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 19:36.