Montar query

13/12/2004 - 13:42 por Joan Ibáñez | Informe spam
Buenos dias! Estoy intentando montar un query, y no encuentro la solución:

Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join T2.Campo8 T3
On T1.CampoY = T3.CampoY

Where ...

El problema es que en el segundo 'Inner Join' la tabla la quiero obtener de
uno de los campos de la Tabla2.
Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?

El query lo almaceno en una variable 'varchar' para luego lanzarlo con exec:

exec(@query)

Un saludo.

Preguntas similare

Leer las respuestas

#1 Maxi
13/12/2004 - 14:07 | Informe spam
Hola, para hacer eso tenes que usar Tablas derivadas


Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join (select Campo8,campoy from tabla2) T3
On T1.CampoY = T3.CampoY

Where ...


pd: no uses SQL-dinamico ya que es una tecnica muy insegura y de bajo
rendimiento


Salu2
Maxi


"Joan Ibáñez" escribió en el mensaje
news:
Buenos dias! Estoy intentando montar un query, y no encuentro la solución:

Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join T2.Campo8 T3
On T1.CampoY = T3.CampoY

Where ...

El problema es que en el segundo 'Inner Join' la tabla la quiero obtener
de
uno de los campos de la Tabla2.
Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?

El query lo almaceno en una variable 'varchar' para luego lanzarlo con
exec:

exec(@query)

Un saludo.


Respuesta Responder a este mensaje
#2 Joan Ibáñez
13/12/2004 - 15:49 | Informe spam
Lo que quiero hacer, es que el segundo inner join sea con la tabla cuyo
nombre esta en el campo 'campo8' de la tabla 'tabla2', ¿me explico? porque
en funcion del registro que se este tratando, he de hacer el 'inner join'
con diferentes tablas.

Un saludo.


"Maxi" escribió en el mensaje
news:%
Hola, para hacer eso tenes que usar Tablas derivadas


Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join (select Campo8,campoy from tabla2) T3
On T1.CampoY = T3.CampoY

Where ...


pd: no uses SQL-dinamico ya que es una tecnica muy insegura y de bajo
rendimiento


Salu2
Maxi


"Joan Ibáñez" escribió en el mensaje
news:
> Buenos dias! Estoy intentando montar un query, y no encuentro la


solución:
>
> Select T1.Campo1, T2.Campo3, T3.Campo5
>
> From Tabla1 T1 Inner Join Tabla2 T2
> On T1.CampoX = T2.CampoX
>
> Inner Join T2.Campo8 T3
> On T1.CampoY = T3.CampoY
>
> Where ...
>
> El problema es que en el segundo 'Inner Join' la tabla la quiero obtener
> de
> uno de los campos de la Tabla2.
> Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?
>
> El query lo almaceno en una variable 'varchar' para luego lanzarlo con
> exec:
>
> exec(@query)
>
> Un saludo.
>
>


Respuesta Responder a este mensaje
#3 Maxi
13/12/2004 - 15:51 | Informe spam
Ahh, entiendo!! mmm, es una extructura bien extraña la tuya :( vos decis que
en un campo esta el nombre de la tabla a vincular? Francamente si es asi no
se me ocurre como podes hacerlo :(


Salu2
Maxi


"Joan Ibáñez" escribió en el mensaje
news:%
Lo que quiero hacer, es que el segundo inner join sea con la tabla cuyo
nombre esta en el campo 'campo8' de la tabla 'tabla2', ¿me explico? porque
en funcion del registro que se este tratando, he de hacer el 'inner join'
con diferentes tablas.

Un saludo.


"Maxi" escribió en el mensaje
news:%
Hola, para hacer eso tenes que usar Tablas derivadas


Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join (select Campo8,campoy from tabla2) T3
On T1.CampoY = T3.CampoY

Where ...


pd: no uses SQL-dinamico ya que es una tecnica muy insegura y de bajo
rendimiento


Salu2
Maxi


"Joan Ibáñez" escribió en el mensaje
news:
> Buenos dias! Estoy intentando montar un query, y no encuentro la


solución:
>
> Select T1.Campo1, T2.Campo3, T3.Campo5
>
> From Tabla1 T1 Inner Join Tabla2 T2
> On T1.CampoX = T2.CampoX
>
> Inner Join T2.Campo8 T3
> On T1.CampoY = T3.CampoY
>
> Where ...
>
> El problema es que en el segundo 'Inner Join' la tabla la quiero
> obtener
> de
> uno de los campos de la Tabla2.
> Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?
>
> El query lo almaceno en una variable 'varchar' para luego lanzarlo con
> exec:
>
> exec(@query)
>
> Un saludo.
>
>






Respuesta Responder a este mensaje
#4 Joan Ibáñez
13/12/2004 - 16:17 | Informe spam
Ok! Gracias de todos modos! ;-).

En una tabla de configuracion tengo un listado de productos, cada uno de
ellos contiene informacion muy diferente a los demas productos. Cada
producto es almacenado en diferentes tablas, y lo que quiero es que al
realizar una consulta lo haga uniendo una tabla principal con la tabla del
producto que se este tratando.

Esto lo hago, para evitar lanzar diferentes querys desde vb.

Un saludo.


"Maxi" escribió en el mensaje
news:
Ahh, entiendo!! mmm, es una extructura bien extraña la tuya :( vos decis


que
en un campo esta el nombre de la tabla a vincular? Francamente si es asi


no
se me ocurre como podes hacerlo :(


Salu2
Maxi


"Joan Ibáñez" escribió en el mensaje
news:%
> Lo que quiero hacer, es que el segundo inner join sea con la tabla cuyo
> nombre esta en el campo 'campo8' de la tabla 'tabla2', ¿me explico?


porque
> en funcion del registro que se este tratando, he de hacer el 'inner


join'
> con diferentes tablas.
>
> Un saludo.
>
>
> "Maxi" escribió en el mensaje
> news:%
>> Hola, para hacer eso tenes que usar Tablas derivadas
>>
>>
>> Select T1.Campo1, T2.Campo3, T3.Campo5
>>
>> From Tabla1 T1 Inner Join Tabla2 T2
>> On T1.CampoX = T2.CampoX
>>
>> Inner Join (select Campo8,campoy from tabla2) T3
>> On T1.CampoY = T3.CampoY
>>
>> Where ...
>>
>>
>> pd: no uses SQL-dinamico ya que es una tecnica muy insegura y de bajo
>> rendimiento
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Joan Ibáñez" escribió en el mensaje
>> news:
>> > Buenos dias! Estoy intentando montar un query, y no encuentro la
> solución:
>> >
>> > Select T1.Campo1, T2.Campo3, T3.Campo5
>> >
>> > From Tabla1 T1 Inner Join Tabla2 T2
>> > On T1.CampoX = T2.CampoX
>> >
>> > Inner Join T2.Campo8 T3
>> > On T1.CampoY = T3.CampoY
>> >
>> > Where ...
>> >
>> > El problema es que en el segundo 'Inner Join' la tabla la quiero
>> > obtener
>> > de
>> > uno de los campos de la Tabla2.
>> > Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?
>> >
>> > El query lo almaceno en una variable 'varchar' para luego lanzarlo


con
>> > exec:
>> >
>> > exec(@query)
>> >
>> > Un saludo.
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#5 ulises
13/12/2004 - 16:17 | Informe spam
¿Los valores que puedes incluir en el campo8 de la tabla T2
son pocos?, si es así puedes usar varias sentencias SELECT
y juntarlas con UNION ALL, por ejemplo si los valores que
toma ese campo son TABLATX1, TABLATX2 y TABLATX3 puedes
hacer algo como (sin probar):

SELECT T1.Campo1, T2.Campo3, T3.Campo5
FROM Tabla1 T1
INNER JOIN Tabla2 T2 ON T1.CampoX = T2.CampoX
INNER JOIN TABLATXT1 T3 ON T1.CampoY = T3.CampoY
WHERE T2.Campo8 = 'TABLATXT1'
UNION ALL
SELECT T1.Campo1, T2.Campo3, T3.Campo5
FROM Tabla1 T1
INNER JOIN Tabla2 T2 ON T1.CampoX = T2.CampoX
INNER JOIN TABLATXT2 T3 ON T1.CampoY = T3.CampoY
WHERE T2.Campo8 = 'TABLATXT2'
UNION ALL
SELECT T1.Campo1, T2.Campo3, T3.Campo5
FROM Tabla1 T1
INNER JOIN Tabla2 T2 ON T1.CampoX = T2.CampoX
INNER JOIN TABLATXT3 T3 ON T1.CampoY = T3.CampoY
WHERE T2.Campo8 = 'TABLATXT3'

Saludos,
Ulises

Buenos dias! Estoy intentando montar un query, y no


encuentro la solución:

Select T1.Campo1, T2.Campo3, T3.Campo5

From Tabla1 T1 Inner Join Tabla2 T2
On T1.CampoX = T2.CampoX

Inner Join T2.Campo8 T3
On T1.CampoY = T3.CampoY

Where ...

El problema es que en el segundo 'Inner Join' la tabla la


quiero obtener de
uno de los campos de la Tabla2.
Tal como esta no funciona ¿Como puedo hacerlo?¿Se puede?

El query lo almaceno en una variable 'varchar' para luego


lanzarlo con exec:

exec(@query)

Un saludo.


.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida