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

[SOLUCIONADO] concatenar en mysql

Estas en el tema de concatenar en mysql en el foro de Mysql en Foros del Web. ola gente esper que me ayuden quiero generar el numero de factura de la siguiente manera : esto me sale en sqlserver: idempleado es int ...
  #1 (permalink)  
Antiguo 02/08/2013, 10:09
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 11 años, 4 meses
Puntos: 0
concatenar en mysql

ola gente esper que me ayuden quiero generar el numero de factura de la siguiente manera :
esto me sale en sqlserver:
idempleado es int
Código SQL:
Ver original
  1. SELECT '0000'+ RIGHT('000'+LTRIM(RIGHT(MAX(IdEmpleado),2)+1),2)  FROM Empleados
resultado=000010

pero quiero hacer esto en mysql:
idempleado es int
Código SQL:
Ver original
  1. SELECT '0000'+ RIGHT('000'+LTRIM(RIGHT(MAX(IdEmpleado),2)+1),2)  FROM Empleados
resultado solo me vota el numero y no me concatena:

Última edición por gnzsoloyo; 02/08/2013 a las 10:18
  #2 (permalink)  
Antiguo 02/08/2013, 10:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: concatenar en mysql

Hola wilsonlazo:

En primer lugar deberías comenzar con decirnos ¿qué es lo que se supone que hace tu consulta? Es decir, para poder darte una equivalencia en MySQL, debemos primero saber qué es lo que pretendes hacer... hay personas que no hemos trabajado con SQL Server por lo que no sabemos qué es lo que hace tu consulta...

Si con generar tu número de factura de refieres a concatenar ceros a la izquierda a un número en específico, te estás complicando terriblemente la existencia, la función LPAD de MySQL hace eso...

Código MySQL:
Ver original
  1. mysql> SELECT cadena, LPAD(cadena, 8, '0')
  2.     -> FROM tabla;
  3. +----------+----------------------+
  4. | cadena   | LPAD(cadena, 8, '0') |
  5. +----------+----------------------+
  6. | 123      | 00000123             |
  7. | 45678    | 00045678             |
  8. | 9876543  | 09876543             |
  9. | 12345678 | 12345678             |
  10. +----------+----------------------+
  11. 4 rows in set (0.00 sec)

Saludos
Leo.
  #3 (permalink)  
Antiguo 02/08/2013, 10:54
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: concatenar en mysql

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola wilsonlazo:

En primer lugar deberías comenzar con decirnos ¿qué es lo que se supone que hace tu consulta? Es decir, para poder darte una equivalencia en MySQL, debemos primero saber qué es lo que pretendes hacer... hay personas que no hemos trabajado con SQL Server por lo que no sabemos qué es lo que hace tu consulta...

Si con generar tu número de factura de refieres a concatenar ceros a la izquierda a un número en específico, te estás complicando terriblemente la existencia, la función LPAD de MySQL hace eso...

Código MySQL:
Ver original
  1. mysql> SELECT cadena, LPAD(cadena, 8, '0')
  2.     -> FROM tabla;
  3. +----------+----------------------+
  4. | cadena   | LPAD(cadena, 8, '0') |
  5. +----------+----------------------+
  6. | 123      | 00000123             |
  7. | 45678    | 00045678             |
  8. | 9876543  | 09876543             |
  9. | 12345678 | 12345678             |
  10. +----------+----------------------+
  11. 4 rows in set (0.00 sec)

Saludos
Leo.
hola leo lo que quiero hacer es:
obtengo el código id dela tabla que es autoincrement
hace:
select max(idtabla)+1 as num from tabla
y esto quiero concatenar con ceros y como lo hago;
  #4 (permalink)  
Antiguo 02/08/2013, 10:57
 
Fecha de Ingreso: julio-2013
Mensajes: 60
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: concatenar en mysql

ya me salio el numero de la factura:codigo

SELECT LPAD(max(envio)+1, 8, '0')FROM envio
resultado=00000007;
  #5 (permalink)  
Antiguo 02/08/2013, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: concatenar en mysql

¿Estás consciente que a pesar de ser un autoincrement, si estás trabajando en un sistema de usuario concurrente, puede que el ID final no sea el correcto, si otro usuario accede a la misma funcionalidad al mismo tiempo?
Normalmente, la generación de la factura se realiza siempre después de hacer la inserción, y jamás se hace antes.
Desde el punto de vista del diseño de sistemas seguros, lo que estás haciendo no es correcto. Deberías, por lo menos, realizar una consulta con reserva de autonumerico. De lo contrario tendrás problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: concatenar, select, sql
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 20:19.