Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/01/2013, 08:14
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 10 meses
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