Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-02-2005
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Como recorrer una tabla uniendo el contenido de dos filas

Hola,

¿ Alguien sabe como puedo recorrer una tabla de manera que si un registro tiene el campo Nombre con una longitud < 10 y el siguiente registro también tiene una longitud < 10, una el contenido del campo Nombre en el primer registro y borre el segundo registro ?

LLevo dándole vueltas un par de días y no me aclaro

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 14-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿hay que hacerlo por SQL obligatoriamente?

Por delphi lo haría así:
Código:
-  usas una variable Buleana Unir, 
   *Si la longitud de este registro es menor a 10 la pones a TRue.
     Tambien haces un BookMark de este registro. 
   *Si no es menor que 10 pones a false la variable Unir
- haces un table.Next
- Miras la longitud 
  *Si es menor que 10, y Unir es a true, 
    guardas el valor actual en Temp y Haces un table.Delete.
    Restauras el Bookmark, y añades temp al campo que quieras,
    poniendo la tabla en edicion y despues guardar. 
    Pones Unir a False.
  *Si Unir está a false, vuelves al paso 1.
- Vuelves al principio.
la verdadera pregunta sería .... ¿para qué quieres hacer tal cosa?

(Espero que se entienda)

saludos

Última edición por Lepe fecha: 14-02-2005 a las 10:05:39.
Responder Con Cita
  #3  
Antiguo 14-02-2005
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Sí, tiene que ser por SQL obligatoriamente.

El problema viene porque he descubierto un error en una tabla con datos ya existente y mi jefe quiere que se soluciones así. Ojala pudiera crearme una sencilla aplicación que lo hiciera pero el que manda...
Responder Con Cita
  #4  
Antiguo 14-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
jaja, las cosas de los jefes,

- qué tipo de BBDD usas, que conexión haces ?
- podrías dar más detalles de los campos y tablas intervinientes?
Responder Con Cita
  #5  
Antiguo 14-02-2005
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Estoy utilizando SQL Server y la tabla tiene los siguientes campos:

IdTipo: varchar(3): identifica el tipo de línea
IdCodigo: varchar (10): identifica al cliente por su código
IdLinea: varchar(255): un mismo cliente puede tener varías líneas de un mismo tipo
Linea: varchar(255): texto que deseo copiar

La clave primaria de la tabla está formada por IdTipo, IdCodigo, IdLinea.

El objetivo es recorrer la tabla conprobando el tamaño del campo Linea, de manera que si éste es < 10, comprobamos si el siguiente registro tiene el mismo Idtipo, IdCodigo pero un IdLinea mayor y la longitud de su campo Linea < 10. Si es así tengo que copiar el contenido del campo Linea del segundo registro en el primero y borrar el segundo registro.

No sé si me he explicado porque el tema es un poco lioso.
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


La franja horaria es GMT +2. Ahora son las 05:47:06.


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