Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2008
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Select de un campo concreto y todos los demas

Hola buenas a todos. El titulo no es lo mas descriptivo pero a ver si me hago entender .

Estoy buscando la manera de hacer una sql anidada (Select (select)) en interbase, que me devuelva el resultado del primer campo de la tabla incrementado en un valor X y el resto de los campos tal cual están sin repetir el campo incrementado.

Lo necesito para actualizar el campo indice de la tabla, con un nuevo valor.
Un ejemplo, tabla libros, campo indice idlibro.

insert into libro
select (select idlibro+X from libro where idlibro like M) as idlibro,libro.* from libro where idlibro like M

El problema es que al poner libro.* estoy seleccionando de nuevo el campo idlibro y me peta al no coincidir el nº de campos que tiene la tabla donde inserto con el nº de campos que le paso de la select.

Entonces, pregunto si hay alguna forma de no pasar o saltar o eliminar un campo determinado en libro.*.

La opcion de escribir manualmente los campos, despues de la select anidada no me vale, ya que son muchisimos campos y me paso en la longitud maxima permitida para el metodo add de el componente TQuery.

Muchisimas gracias por leerme al menos y por vuestra ayuda.

Un saludo.
Responder Con Cita
  #2  
Antiguo 02-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 16
Caro Va por buen camino
Cita:
Empezado por juanpe Ver Mensaje
Entonces, pregunto si hay alguna forma de no pasar o saltar o eliminar un campo determinado en libro.*.
Que yo sepa no, o utilizass el * para todos o pones manualmente los campos que necesitas, para incrementar el valor no necesitas hacer otra subconsulta puedes hacerlo directo.

Código SQL [-]
Select idlibro+X as idlibro, campo1, campo2.....
From libro where idlibro like M

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 02-10-2008
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 287
Poder: 14
RolphyReyes Va por buen camino
Smile

Saludos.

Si sobrepasas el número de caracter soportado por el TQuery, te recomiendo hacer un Stored Procedure y luego ejecutarlo desde la aplicación.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #4  
Antiguo 02-10-2008
juanpe juanpe is offline
Miembro
 
Registrado: oct 2004
Posts: 46
Poder: 0
juanpe Va por buen camino
Gracias por responder.

Cierto, que no necesito la 2ª select. un trabajo inutil por tanto.

El tema de los procedimientos almacenados me tengo que poner al dia con ellos.
Aun no los he utilizado nunca.


Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Select a parte de un campo..similar al like BlueSteel SQL 4 14-05-2008 01:43:21
Problemas con select en campo fecha sancarlos MySQL 1 04-09-2007 05:19:07
Division de un Campo en un select dmagui SQL 1 04-01-2007 18:59:05
Pasar todos los datos de mysql a Select Cosgaya MySQL 7 10-07-2006 13:54:47
Asignar a un campo un select max el_barto Conexión con bases de datos 1 23-06-2005 19:19:20


La franja horaria es GMT +2. Ahora son las 19:47:52.


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