Ir al contenido


Foto

Ayuda con SQL


  • Por favor identifícate para responder
5 respuestas en este tema

#1 apicito

apicito

    Advanced Member

  • Miembros
  • PipPipPip
  • 104 mensajes

Escrito 17 marzo 2011 - 05:37

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
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 17 marzo 2011 - 06:36

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 mensajes

Escrito 17 marzo 2011 - 06:58

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 mensajes
  • LocationOaxaca, México

Escrito 17 marzo 2011 - 08:19

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
  • 1.484 mensajes
  • LocationMallorca

Escrito 17 marzo 2011 - 11:14

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 mensajes

Escrito 18 marzo 2011 - 12:49

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.