Ver Mensaje Individual
  #30 (permalink)  
Antiguo 09/01/2016, 01:25
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Ayudita con el ID inicio del año empezar otra vez

Cita:
Iniciado por pilucho Ver Mensaje
Ya solucione el insert ahora si inserta contenido
PERO, en el campo "CodigoUnico" GUARDA todo asi
2016-1, 2016-1, 2016-1, NO se incrementa

DEBERIA ser asi:
CODIGO-2015-9816
CODIGO-2016-1
CODIGO-2016-2
CODIGO-2016-3

NO asi
2016-1, 2016-1, 2016-1, 2016-1
Eso ocurre porque no se está cumpliendo la condición. En el ejemplo que te dí, el código tiene la forma "año-número de orden", siendo los primeros cuatro carácteres los dígitos del año, que es precisamente lo que tomo con la función SUBSTRING(). Entonces, lo que necesitas es simplemente modificar tanto la condición como la línea en la que se toma al último código para así incrementarlo en uno.

Código MySQL:
Ver original
  1. IF ((SELECT COUNT(*) FROM Personas AS alias1) > 0 AND SUBSTRING((SELECT CodigoUnico FROM Personas AS alias2 ORDER BY CodigoUnico DESC LIMIT 1), 8, 12) = YEAR(CURDATE()),
  2.     CONCAT(
  3.         YEAR(CURDATE()),
  4.         '-',
  5.         CONVERT(
  6.             SUBSTRING((SELECT CodigoUnico FROM Personas AS alias3 ORDER BY CodigoUnico DESC LIMIT 1), 14),
  7.             UNSIGNED INTEGER
  8.         ) + 1
  9.     ),
  10.     CONCAT(YEAR(CURDATE()), '-', 1)
  11. )

El año aparece en la posición 8 y culmina en la 12, mientras que el número correlativo aparece en la posición 14. Esos son los números que tenías que poner como nuevos argumentos de la función.

Siempre debes analizar el código antes de probarlo, pues, por limitarse a copiar y pegar sin antes verificar que la lógica del algoritmo se adecúa a lo que necesitamos, surgen inconvenientes, como este.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand