FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Crear SubConsulta en Sql con datos desde Tabla
Saludos a Todos:
Estoy tratando de crear una subconsulta donde los campos y la tabla estan alojados en una tabla de configuracion. Tengo varios tipos de clientes que sus datos estan en tablas diferentes, pero cuando hago por ejemplo un recibo de ingreso elijo el tipo de cliente y la tabla de sus datos. la tabla de Configuracion contiene el Tipo de Cliente, la base de datos y el campo de nombre de cliente almacenado. el Qry es el siguiente: Select a.Reci_Numero, a.Tipo_Codigo, a.Clte_Codigo, '( Select ' + rtrim(b.clte_descripcion) + ' from ' + rtrim(b.Clte_Database)+ ')' as Clte_Descripcion From Recibos_Ingresos a INNER JOIN Tabla_Tipos_Clientes b ON a.Tipo_Codigo = b.Tipo_Codigo Donde b.CLTE_DESCRIPCION = 'CLTE_NOMBRES' o 'MDCO_NOMBRES' y b.CLTE_DATABASE = 'DB_INVENTARIOS.DBO.TABLA_DE_CLIENTES' o 'DB_CONSULTORIO.DBO.TABLA_DE_MEDICOS' El resultado es el siguiente: 1063, 2, 4, ( SELECT MDCO_NOMBRES from DB_CONSULTORIO.DBO.TABLA_MEDICOS) En lugar de: 1063, 2, 4, DR. LEONARDO ROSARIO Estoy usando SQL Server 2000 Windows Vista Gracias. |
#2
|
||||
|
||||
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
__________________
|
#3
|
|||
|
|||
Gracias ContraVeneno, probare en los link A ver si puedo lograr algo.
|
#4
|
||||
|
||||
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 - |
#5
|
|||
|
|||
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. |
#6
|
||||
|
||||
Hola,
no se SQL Server, pero basándome en lo que escribes, podría ser lo siguiente
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 - |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|