SQL Server - ¿Esto existe en Transac Sql?

 
Vista:

¿Esto existe en Transac Sql?

Publicado por Rosana (2 intervenciones) el 07/07/2005 10:01:46
Hola, necesito hacer en sql una sentencia de este tipo. En Oracle y Sybase se puede hacer, pero en sql me da error sintáctico y no sé si es porque no se puede hacer, o porque realmente lo estoy haciendo mal:

SELECT e.campo1
FROM ( SELECT campo1
FROM .... ) e
WHERE .......

¿Me podeis ayudar?

Gracias


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:¿Esto existe en Transac Sql?

Publicado por Liliana (151 intervenciones) el 07/07/2005 13:14:55
Hola Rosana,
Esa sintaxis es válida en MS SQL Server, si querés mandar más ampliado el query, tal vez te pueda ayudar más en concreto.
Saludos,
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Esto existe en Transac Sql?

Publicado por Rosana (2 intervenciones) el 07/07/2005 13:32:12
Muchas gracias Liliana!!

Mira, lo que necesito es pasar esta sentencia hecha en Oracle para que me funcione en SqlServer, echale un vistazo a ver qué te parece:

select c.cod_persona,
c.pasaporte
from sg_persona c, (
select distinct b.cod_persona
from sg_persona_nacionalidad a,
sg_persona_nacionalidad b
where a.cod_pais = b.cod_pais and a.cod_persona = 1 )
where c.ind_desestimado = 'S'

Muchas gracias
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:¿Esto existe en Transac Sql?

Publicado por Liliana (151 intervenciones) el 07/07/2005 20:35:28
Rosana,
Perdoná el retraso en contestar, pero estaba con mucho trabajo.
Está casi correcto, solo falta un ALIAS en la tabla derivada:

where a.cod_pais = b.cod_pais and a.cod_persona = 1 ) derivada
where c.ind_desestimado = 'S'

Si me permitís, te haría un comentario. Es aconsejable cambiar la forma de relacionar las tablas para que quede de esta manera:

select distinct b.cod_persona
from sg_persona_nacionalidad a
inner join sg_persona_nacionalidad b
on a.cod_pais = b.cod_pais
where a.cod_persona = 1

Cuando puedas, mirá con detenimiento en los libros en pantalla lo relacionado a los JOIN, es un poco complejo si no lo manejás bien, pero te acostumbrás y es más claro.

Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar