Jump to content


Photo

Ayuda con SQL


  • Please log in to reply
5 replies to this topic

#1 apicito

apicito

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 posts

Posted 17 March 2011 - 05:37 AM

Haber si alguiien me puede ayudar con esto:
Estoy tratando de hacer una consulta en la que el nombre de una tabla subordinada depende del contenido de un campo de la tabla principal
Ejemplo:

select
EMP_CODIGO,EMP_NOMBRE, EMP_APLICACION,EMP_DIARIO,
APL_PART, APL_DESCRIP,APL_PARAMETROS,
DIA_FECHA,DIA_DESCRIP,DIA_IMPORTE
from EMPRESA
inner join APLICACION on APL_CODIGO=EMP_APLICACION
inner join DIA[APL_PART] on DIA_CODIGO=EMP_DIARIO
where EMP_CODIGO=1 and DIA_FECHA......

La tabla de diario se llamaria, por ejemplo, DIA00012.
No sé si se ve claro el escenario: En la tabla de aplicaciones existe un campo que define el nombre de la tabla de diario. Es lo que va entre corchetes en el segundo inner join.
Un saludo.
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 17 March 2011 - 06:36 AM

Saludos.

Antes que nada debes de indicarnos donde quieres realizar dicha operación, si es en Delphi o en el motor, así poder indicarte como hacerlo.

Si el nombre de la tabla esta almacenado en una estructura lo primero que debes de realizar es la búsqueda del Nombre y luego armar la sentencia.
  • 0

#3 apicito

apicito

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 posts

Posted 17 March 2011 - 06:58 AM

Si lo quiero hacer desde una aplicación delphi.
Haciendo una consulta previa para obtener la "Particula [APL_PART]" que se le añade al nombre de la taba no me ofrece duda. Lo que intento es hacerlo todo en un solo Sql.
  • 0

#4 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 17 March 2011 - 08:19 AM

Si lo quiero hacer desde una aplicación delphi.
Haciendo una consulta previa para obtener la "Particula [APL_PART]" que se le añade al nombre de la taba no me ofrece duda. Lo que intento es hacerlo todo en un solo Sql.

Si ya has realizado previa la consulta ya tenemos todo para proceder al armado de la sentencia sql, una forma creo yo elegante y entendible es utilizando la función Format (http://www.delphibas...asp?Name=Format) para pasar cuantas variables queiras a un string en este caso tu sentencia sql, no le veo tanto problema, si tienes complicaciones al momento de ejecutar, con gusto te aclaramos dudas.
Saludos.
  • 0

#5 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1484 posts
  • LocationMallorca

Posted 17 March 2011 - 11:14 AM

No puedes hacerlo como quieres, así que tendrás que buscar una alternativa.

En los campos de selección del SELECT, puedes poner varias subconsultas, consultando en cada una de ellas a la tabla DIA00XX correspondiente en función del valor del campo APL_PART (mediante una construcción CASE).

O bien, tras el FROM haz uniones con cada una de las tablas DIA0XX, y después en los campos de selección del SELECT, escoge el valor de la tabla DIA0XX que te interese en función del valor del campo APL_PART (de nuevo mediante una construcción CASE).

Saludos.
  • 0

#6 apicito

apicito

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 posts

Posted 18 March 2011 - 12:49 AM

Lo hare mediante una consulta previa para obtener la particula para formar el nombre de la tabla.
Gracias por las aportaciones.
  • 0




IP.Board spam blocked by CleanTalk.