Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
ayuda con un update

buenas tardes a todos, tengo un pequeño problema resulta que tengo en una tabla los campos de fecha divididos es decir tengo un campo dia tipo int,mes de tipo varchar y el año de tipo int, la tabla ya tiene muchos registros pero quiero hacerle un update quiero que en el campo mes donde tenga por ejemplo enero me lo reemplace por 01, febrero por 02 y asi sucesivamente,
he estado investigando por la web y tengo la opcion de usar un cursor pero quiero ver k ustedes me recomiendan y asi le sirva la duda a alguien mas


gracias de antemano...
Responder Con Cita
  #2  
Antiguo 28-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Código SQL [-]
update tutabla
set mes = '01' where mes = 'enero'

y repites para los otros meses.

Bye
Responder Con Cita
  #3  
Antiguo 28-03-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
hola keyboy

hola keyboy gracias por responderme pero esa solucion fue en la primera k pense y no me parece muy profesional por eso no he optado por usarla, kiero mas bien hacerla algo mas complicada por ejemplo con un cursor o un store procedure....
Responder Con Cita
  #4  
Antiguo 28-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por ingmichel Ver Mensaje
hola keyboy gracias por responderme pero esa solucion fue en la primera k pense y no me parece muy profesional por eso no he optado por usarla, kiero mas bien hacerla algo mas complicada por ejemplo con un cursor o un store procedure....
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 28-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por ingmichel Ver Mensaje
kiero mas bien hacerla algo mas complicada
Código SQL [-]
update tutabla
set mes =
  trim(substring("enero     febrero   marzo     abril     mayo      junio     julio     agosto    septiembreoctubre   noviembre diciembre",
  (cast(mes as integer) - 1)*10, 10))

¡Ah! No. Era alrevés . Bueno, ya pensaré en algo.

Bye
Responder Con Cita
  #6  
Antiguo 28-03-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Cita:
Empezado por keyboy Ver Mensaje
Código SQL [-]
update tutabla
set mes =
trim(substring("enero febrero marzo abril mayo junio julio agosto septiembreoctubre noviembre diciembre",
(cast(mes as integer) - 1)*10, 10))





¡Ah! No. Era alrevés . Bueno, ya pensaré en algo.

Bye

hola keyboy el codigo k escribiste me da error me dice
Invalid column name 'enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre'.

a que se deberá esto ?
Responder Con Cita
  #7  
Antiguo 28-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ingmichel Ver Mensaje
..... no me parece muy profesional ....... kiero mas bien hacerla algo mas complicada
O sea, dejame tratar de entender, complicado es sinónimo de profesional

Cita:
Empezado por ingmichel Ver Mensaje
por ejemplo con un cursor o un store procedure....
Y ya has tratado algo y no has podido......., bueno a reserva de que me hagan sentir villano de nuevo porque no cooperas con algo de código, así aprendemos a hacer las cosas profesionalmente complicadas.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 28-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
O sea, dejame tratar de entender, complicado es sinónimo de profesional



Y ya has tratado algo y no has podido......., bueno a reserva de que me hagan sentir villano de nuevo porque no cooperas con algo de código, así aprendemos a hacer las cosas profesionalmente complicadas.....

Salud OS
Porque en lugar de responder sandeces no le das el codigo, es obvio que lo que quiere es cambiar el cursor del mouse
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 28-03-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Gracias Keyboy

HOLA KEYBOY GRACIAS POR TU TIEMPO CREO K YA ENCONTRE LA SOLUCION,
CREE UN STORE PROCEDURE EL CODIGO ES EL SIGUIENTE:

CREATE PROCEDURE SP_UPDATE
AS
while exists(select MES from visa_ch
where mes='ENERO' )
BEGIN
update visa_ch
set mes='01' where mes='ENERO'
if (select count(mes) from visa_ch
where mes='ENERO') <= 0
BREAK
ELSE
PRINT ' YA ACTUALIZE HAY DATOS'
continue
end

ESTE ES EL EJEMPLO DE ENERO PARA LOS DEMAS MES SOLO HAY K CAMBIAR ALGUNAS COSILLAS, GRACIAS DE TODOS MODOS KEYBOY FELIZ RESTO DEL DIA...
Responder Con Cita
  #10  
Antiguo 28-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola, yo de nuevo

Veamos

Pensando en que tu procedimiento ya funcionó,

Cambias
  1. Enero a Febrero
  2. Febrero a Marzo
  3. Marzo a Abril
  4. Abril a Mayo
  5. Mayo a Junio
  6. Junio a Julio
  7. Julio a Agosto
  8. Agosto a Septiembre
  9. Septiembre a Octubre
  10. Octubre a Noviembre
  11. Noviembre a Diciembre
  12. Diciembre a .......

Si no se tiene algo de cuidado, en una de esas todos los registros estarán asignados al último mes.......

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #11  
Antiguo 28-03-2008
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
agradezco sugerencia

Cita:
Empezado por egostar Ver Mensaje
Hola, yo de nuevo

Veamos

Pensando en que tu procedimiento ya funcionó,

Cambias
  1. Enero a Febrero
  2. Febrero a Marzo
  3. Marzo a Abril
  4. Abril a Mayo
  5. Mayo a Junio
  6. Junio a Julio
  7. Julio a Agosto
  8. Agosto a Septiembre
  9. Septiembre a Octubre
  10. Octubre a Noviembre
  11. Noviembre a Diciembre
  12. Diciembre a .......
Si no se tiene algo de cuidado, en una de esas todos los registros estarán asignados al último mes.......


Salud OS
hola egostar, gracias por tu sugerencia se bien a lo que te refieres pero como sabras en todas partes febrero es el mes 2 marzo el 3 y asi sucesivamente asi k no creo k haya problemas, de todas formas gracias hasta luego...
Responder Con Cita
  #12  
Antiguo 29-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Aquí es donde aplica el KISS principle.

Originalmente había pensado poner algo como:

Código SQL [-]
update tutabla
set mes = case mes
  when 'enero' then '01'
  when 'febrero' then '02'
  when 'marzo' then '03'

  ...

  when 'diciembre' then '12'
end

(la notación es de MySQL; supongo que SQL Server tendrá algo parecido), que hace la actualización en un sólo paso, pero para algo que se hace una sóla vez, pensé que no valía la pena; era más fácil hacer la consulta para un mes y reptirla cambiando los parámetros.

Si esta operación es algo que deba hacerse de manera regular, ciertamente habría que hacer algo más "profesional" que una consulta pensada para hacerla en el administrador de bases directamente. Pero no veo como ese procedimiento almacenado, que actualiza registro por registro, y que hay que repetir doce veces, pueda considerarse más profesional. Si se usa un SP, por lo menos que actualice todo en una sóla pasada.

Bye
Responder Con Cita
  #13  
Antiguo 29-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ingmichel Ver Mensaje
hola egostar, gracias por tu sugerencia se bien a lo que te refieres pero como sabras en todas partes febrero es el mes 2 marzo el 3 y asi sucesivamente asi k no creo k haya problemas, de todas formas gracias hasta luego...
Bueno, pues creo que por leer a media linea me equivoque en mi comentario y asi lo reconozco, pense que querias cambiar el mes pero al siguiente, bueno sin mas rollos me lie yo solito.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Update SQL mjjj SQL 10 14-11-2007 22:09:31
Ayuda con Update aun memo rodrigodeoz Conexión con bases de datos 9 25-09-2007 18:54:58
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
ayuda con UPDATE droguerman MS SQL Server 2 29-05-2006 20:48:28
Update con sql miguelb SQL 8 25-07-2003 16:30:30


La franja horaria es GMT +2. Ahora son las 00:42:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi