Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
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 06-07-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
la única opción que se me viene a la mente es utilizar una consulta dinámica con un procedimiento almacenado....

The Curse and Blessings of Dynamic SQL


SQL Stored Procedure - update column/table names via variable
__________________

Responder Con Cita
  #2  
Antiguo 07-07-2010
RRenault RRenault is offline
Miembro
 
Registrado: may 2003
Posts: 10
Poder: 0
RRenault Va por buen camino
Gracias ContraVeneno, probare en los link A ver si puedo lograr algo.
Responder Con Cita
  #3  
Antiguo 07-07-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Es normal que te devuelva eso, estás pasando un literal, la select está entrecomillada.

Puedes hacer una cosa:

Una función
Select a.Reci_Numero, a.Tipo_Codigo, a.Clte_Codigo,
FUNCIONNOMBRE(b.clte_descripcion,b.Clte_Database) as Clte_Descripcion
From Recibos_Ingresos a INNER JOIN Tabla_Tipos_Clientes b ON a.Tipo_Codigo = b.Tipo_Codigo

siendo la funcion quien te devuelva el valor que obtiene (b.clte_descripcion) la select. Ahora, creo que te falta una pieza, que es el código del cliente (a.Clte_Codigo), ya que entiendo que dependerá el valor de lo que devuelva del valor del código.

quedaría así la select modificada

Select a.Reci_Numero, a.Tipo_Codigo, a.Clte_Codigo,
FUNCIONNOMBRE(a.Clte_Codigo, b.clte_descripcion,b.Clte_Database) as Clte_Descripcion
From Recibos_Ingresos a INNER JOIN Tabla_Tipos_Clientes b ON a.Tipo_Codigo = b.Tipo_Codigo

siendo la función la que monte la select

SELECT b.clte_descripcion FROM b.Clte_Database WHERE IDCLIENTE = a.Clte_Codigo

y devuelva el dato.

Nos cuentas.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 08-07-2010
RRenault RRenault is offline
Miembro
 
Registrado: may 2003
Posts: 10
Poder: 0
RRenault Va por buen camino
Gracias por Contestar fjcg02, Hice mas o menos lo siguiente, pero me devuelve lo mismo:



CREATE FUNCTION BuscaCliente(@Clte_Codigo Integer, @Clte_Campo VarChar(40), @Clte_Database VarChar(40), @Tipo_Codigo Integer )
RETURNS VarChar(150) as
BEGIN
declare @Clte_Nombre as varchar(150)
set @Clte_Nombre =

( Select ( ' Select ' + Rtrim(Clte_Descripcion) + ' From ' + Rtrim(Clte_Database) + ' Where ' + Rtrim(Clte_Codigo) + ' = ' + Cast( Clte_Codigo as Char(10)))
From Tabla_Tipos_Clientes Where Tipo_Codigo = @Tipo_Codigo )

return @Clte_nombre
end


Select a.Reci_Numero, a.Tipo_Codigo, a.Clte_Codigo,
dbo.BuscaCliente(a.Clte_Codigo, b.clte_descripcion, b.Clte_Database, b.Tipo_Codigo) as Clte_Descripcion
From Recibos_Ingresos a INNER JOIN Tabla_Tipos_Clientes b ON a.Tipo_Codigo = b.Tipo_Codigo


No se si estoy haciendo algo mal.
Responder Con Cita
  #5  
Antiguo 08-07-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Hola,
no se SQL Server, pero basándome en lo que escribes, podría ser lo siguiente


Código SQL [-]
CREATE FUNCTION BuscaCliente(@Clte_Codigo Integer, @Clte_Campo VarChar(40), @Clte_Database VarChar(40), @Tipo_Codigo Integer )
RETURNS VarChar(150) as
BEGIN
declare @Clte_Nombre as varchar(150)

Select  @Clte_nombre=@Clte_Descripcion  From @Clte_Database Where  @Clte_Codigo' =@Clte_Codigo
From Tabla_Tipos_Clientes Where Tipo_Codigo = @Tipo_Codigo

return @Clte_nombre
end

Se supone que la select sólo devuelve un valor, por supuesto.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 09-07-2010
RRenault RRenault is offline
Miembro
 
Registrado: may 2003
Posts: 10
Poder: 0
RRenault Va por buen camino
Aqui se produce un error:

Select @Clte_nombre=@Clte_Descripcion From @Clte_Database Where @Clte_Codigo =@Clte_Codigo
From Tabla_Tipos_Clientes Where Tipo_Codigo = @Tipo_Codigo



Server: Msg 170, Level 15, State 1, Procedure BuscaCliente, Line 9
Line 9: Incorrect syntax near '='.
Responder Con Cita
  #7  
Antiguo 10-07-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
No sé tanto SQLServer como para darte la unción hecha, y tampoco tengo ejemplos para mirar.

Podría ser que @Clte_nombre y @Clte_Descripcion no son del mismo tipo ( VARCHAR (150) ), aunque no estoy seguro.

En Firebird la función es clara, se hace la SELECT campo from tabla where condicion INTO campo

y la variable campo se devuelve.


Mira a ver si encuentras información en la web.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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
Subconsulta con la misma tabla krls SQL 5 05-04-2008 01:03:51
Crear una Tabla SQL desde la Interfaz Alejandro73 SQL 5 28-11-2006 18:03:18
Crear tabla .BDF desde delphi VRO Conexión con bases de datos 1 02-02-2005 18:08:54
crear tabla desde una consulta sql... ronimaxh SQL 6 27-07-2004 15:57:57
Subconsulta a la misma tabla apicito SQL 3 23-07-2004 21:24:24


La franja horaria es GMT +2. Ahora son las 22:06:25.


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