Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2013, 20:10
mutant_x
 
Fecha de Ingreso: enero-2007
Mensajes: 58
Antigüedad: 17 años, 3 meses
Puntos: 3
error 1054 - Unknown column 'Y' in 'field list'

Buenas...
estoy intentando hacer un procedimiento almacenado para calcular el valor de un campo llamado TIEMPOUSO en los registros de una tabla llamada activos.. ademas de este valor calculo otras cosas pero he querido probar el codigo como va hasta el calculo del campo TIEMPOUSO...
el caso es que cuando intento actualizar los valores de la tabla me da este error.
1054 - Unknown column 'Y' in 'field list'

este es el codigo:

Código MySQL:
Ver original
  1.     DECLARE bContinuar BOOLEAN DEFAULT true;
  2.     DECLARE VarSecuencia VARCHAR(50);
  3.     DECLARE Mensaje VARCHAR(100);
  4.     DECLARE VarValorActual DOUBLE(15,0);
  5.     DECLARE VarPorcentaje DOUBLE(15,0);
  6.     DECLARE VarValorAgregado DOUBLE(15,0);
  7.     DECLARE VarValor DOUBLE(15,0);
  8.     DECLARE VarDepAcum DOUBLE(15,0);
  9.     DECLARE VarFechaActual DATE;
  10.     DECLARE VarFechaAdq DATE;
  11.     DECLARE AnoAct INT;
  12.     DECLARE MesAct INT;
  13.     DECLARE DiaAct INT;
  14.     DECLARE Dia INT;
  15.     DECLARE Mes INT;
  16.     DECLARE Ano INT;
  17.     DECLARE AnoAdq INT;
  18.     DECLARE MesAdq INT;
  19.     DECLARE DiaAdq INT;
  20.     DECLARE cursor1 CURSOR FOR SELECT SECUENCIA, PORCDEP, VALORACTUAL, VALORAGREGADO, VALOR, FECHAADQUISICION, TOTALDEPRECIADO FROM activos;
  21.     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET bContinuar = false;
  22.     SET VarFechaActual = DATE(Y-m-d);
  23.     SET AnoAct = YEAR(NOW());
  24.     SET MesAct = MONTH (NOW());
  25.     SET DiaAct = DAY(NOW());
  26.  
  27.     OPEN cursor1;
  28.     REPEAT
  29.     FETCH cursor1 INTO VarSecuencia, VarPorcentaje, VarValorActual, VarValorAgregado, VarValor, VarFechaAdq, VarDepAcum;
  30.     IF bContinuar THEN
  31.         SET AnoAdq = YEAR(VarFechaAdq);
  32.         SET MesAdq = MONTH (VarFechaAdq);
  33.         SET DiaAdq = DAY(VarFechaAdq);
  34.  
  35.         IF DiaAct < DiaAdq THEN
  36.             SET AnoAct = AnoAct - 1;
  37.             SET DiaAct = DiaAct + 30;
  38.         END IF;
  39.         IF MesAct < MesAdq THEN
  40.             SET MesAct = MesAct - 1;
  41.             SET MesAct = MesAct + 12;
  42.         END IF;
  43.         SET Dia = DiaAct - DiaAdq;
  44.         SET Mes = MesAct - MesAdq;
  45.         SET Ano = AnoAct - AnoAdq;
  46.         SET Mensaje = CONCAT('En el inventario, El tiempo de uso es de: ', Ano , Mes , Dia);
  47.        
  48.         UPDATE prueba_procedure SET prueba_procedure.TIEMPOUSO = Mensaje WHERE activos.SECUENCIA = VarSecuencia;
  49.     END IF;
  50.     UNTIL NOT bContinuar END REPEAT;
  51.     CLOSE cursor1;
  52. SELECT 'Los datos se cargaron correctamente';

ayuda por favor ...
GRACIAS..