Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como recorrer una tabla uniendo el contenido de dos filas (https://www.clubdelphi.com/foros/showthread.php?t=18473)

Javi2 14-02-2005 09:29:21

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.

Lepe 14-02-2005 09:52:14

¿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? :D

(Espero que se entienda)

saludos

Javi2 14-02-2005 10:01:01

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...

Lepe 14-02-2005 10:07:58

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?

Javi2 14-02-2005 10:30:14

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.


La franja horaria es GMT +2. Ahora son las 05:00: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