FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
¿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. (Espero que se entienda) saludos Última edición por Lepe fecha: 14-02-2005 a las 10:05:39. |
#3
|
|||
|
|||
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... |
#4
|
||||
|
||||
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? |
#5
|
|||
|
|||
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. |
|
|
|