Selects anidados-pregunta básica

15/11/2006 - 15:15 por Alejandro Giardino | Informe spam
Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en este
select?

select * from (select getdate())

Me devuelve:

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.

¿Dónde puedo encontrar documentación técnica sobre select anidados?


Gracias

Preguntas similare

Leer las respuestas

#1 BitOne®
15/11/2006 - 15:38 | Informe spam
Hola Alejandro Giardino:

Cuando realizas sub-consultas que van en el From debes de indicar un alias
para este, algo como esto:

select *
from (
select getdate() fecha
) a -- Aqui indicas el alias
go

Y para cada uno de los campos de la sub-consulta debes de indicar un nombre
y no puede estar duplicado.

Saludos,

BitOne®

"Alejandro Giardino" wrote in message
news:
Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en este
select?

select * from (select getdate())

Me devuelve:

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.

¿Dónde puedo encontrar documentación técnica sobre select anidados?


Gracias


Respuesta Responder a este mensaje
#2 Maxi
15/11/2006 - 15:41 | Informe spam
Hola, un solo detalle nomas, eso no son subconsultas sino tablad derivadas,
una subconsulta es cuando hacer

select campo1,(select campo from tabla) as campo from tablas



Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"BitOne®" escribió en el mensaje
news:
Hola Alejandro Giardino:

Cuando realizas sub-consultas que van en el From debes de indicar un alias
para este, algo como esto:

select *
from (
select getdate() fecha
) a -- Aqui indicas el alias
go

Y para cada uno de los campos de la sub-consulta debes de indicar un
nombre
y no puede estar duplicado.

Saludos,

BitOne®

"Alejandro Giardino" wrote in message
news:
Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en
este
select?

select * from (select getdate())

Me devuelve:

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.

¿Dónde puedo encontrar documentación técnica sobre select anidados?


Gracias






Respuesta Responder a este mensaje
#3 Alejandro Giardino
15/11/2006 - 15:46 | Informe spam
Gracias BIT One, me has resuelto un problema pero ahora te duplico la
apuesta, tengo que hacer un select de un execute... ¿se puede?

Te paso un ejemplo de código a ver si lo que busco es real o estoy
delirando:

select id_pdv from (exec pr_Reporte 'par1','par2','par3','par4') a

te pego los errores que me da:

Server: Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'exec'.
Server: Msg 170, Level 15, State 1, Line 5
Line 5: Incorrect syntax near ')'.

"BitOne®" escribió en el mensaje
news:
Hola Alejandro Giardino:

Cuando realizas sub-consultas que van en el From debes de indicar un alias
para este, algo como esto:

select *
from (
select getdate() fecha
) a -- Aqui indicas el alias
go

Y para cada uno de los campos de la sub-consulta debes de indicar un
nombre
y no puede estar duplicado.

Saludos,

BitOne®

"Alejandro Giardino" wrote in message
news:
Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en
este
select?

select * from (select getdate())

Me devuelve:

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ')'.

¿Dónde puedo encontrar documentación técnica sobre select anidados?


Gracias






Respuesta Responder a este mensaje
#4 Alejandro Mesa
15/11/2006 - 16:09 | Informe spam
Alejandro,

Debes capturar la salida del sp en una tabla y luego referenciar la tabla en
la sentencia "select".

create table #t (c1 int, ...)

insert into #t(c1, ..., cn)
exec dbo.p1 ...

select *
from #t
where ...
go

Tambien puedes reprogramar tu sp, creando una funcion que devuelva una tabla
y referenciar esta funcion en la sentencia "select".

Existe una forma de hacer lo que indicas, usando la funcion openquery, pero
debes usar otra conexion para hacerlo, por lo que no es aconsejable.

Ejemplo:

select
*
from
openquery(localserver, 'set fmtonly off exec dbo.sp_who2 ''active''')
go


AMB

"Alejandro Giardino" wrote:

Gracias BIT One, me has resuelto un problema pero ahora te duplico la
apuesta, tengo que hacer un select de un execute... ¿se puede?

Te paso un ejemplo de código a ver si lo que busco es real o estoy
delirando:

select id_pdv from (exec pr_Reporte 'par1','par2','par3','par4') a

te pego los errores que me da:

Server: Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'exec'.
Server: Msg 170, Level 15, State 1, Line 5
Line 5: Incorrect syntax near ')'.

"BitOne®" escribió en el mensaje
news:
> Hola Alejandro Giardino:
>
> Cuando realizas sub-consultas que van en el From debes de indicar un alias
> para este, algo como esto:
>
> select *
> from (
> select getdate() fecha
> ) a -- Aqui indicas el alias
> go
>
> Y para cada uno de los campos de la sub-consulta debes de indicar un
> nombre
> y no puede estar duplicado.
>
> Saludos,
>
> BitOne®
>
> "Alejandro Giardino" wrote in message
> news:
>> Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en
>> este
>> select?
>>
>> select * from (select getdate())
>>
>> Me devuelve:
>>
>> Server: Msg 170, Level 15, State 1, Line 1
>> Line 1: Incorrect syntax near ')'.
>>
>> ¿Dónde puedo encontrar documentación técnica sobre select anidados?
>>
>>
>> Gracias
>>
>>
>
>



Respuesta Responder a este mensaje
#5 BitOne®
15/11/2006 - 17:02 | Informe spam
Hola Alejandro Giardino:

Mr. Alejandro Mesa ha dado en el clavo con tu pregunta.

Saludos,
BitOne®
"Alejandro Mesa" wrote in message
news:
Alejandro,

Debes capturar la salida del sp en una tabla y luego referenciar la tabla


en
la sentencia "select".

create table #t (c1 int, ...)

insert into #t(c1, ..., cn)
exec dbo.p1 ...

select *
from #t
where ...
go

Tambien puedes reprogramar tu sp, creando una funcion que devuelva una


tabla
y referenciar esta funcion en la sentencia "select".

Existe una forma de hacer lo que indicas, usando la funcion openquery,


pero
debes usar otra conexion para hacerlo, por lo que no es aconsejable.

Ejemplo:

select
*
from
openquery(localserver, 'set fmtonly off exec dbo.sp_who2 ''active''')
go


AMB

"Alejandro Giardino" wrote:

> Gracias BIT One, me has resuelto un problema pero ahora te duplico la
> apuesta, tengo que hacer un select de un execute... ¿se puede?
>
> Te paso un ejemplo de código a ver si lo que busco es real o estoy
> delirando:
>
> select id_pdv from (exec pr_Reporte 'par1','par2','par3','par4') a
>
> te pego los errores que me da:
>
> Server: Msg 156, Level 15, State 1, Line 5
> Incorrect syntax near the keyword 'exec'.
> Server: Msg 170, Level 15, State 1, Line 5
> Line 5: Incorrect syntax near ')'.
>
> "BitOne®" escribió en el mensaje
> news:
> > Hola Alejandro Giardino:
> >
> > Cuando realizas sub-consultas que van en el From debes de indicar un


alias
> > para este, algo como esto:
> >
> > select *
> > from (
> > select getdate() fecha
> > ) a -- Aqui indicas el alias
> > go
> >
> > Y para cada uno de los campos de la sub-consulta debes de indicar un
> > nombre
> > y no puede estar duplicado.
> >
> > Saludos,
> >
> > BitOne®
> >
> > "Alejandro Giardino" wrote in message
> > news:
> >> Hola a todos, tengo una pregunta de lo más sencilla: ¿Qué está mal en
> >> este
> >> select?
> >>
> >> select * from (select getdate())
> >>
> >> Me devuelve:
> >>
> >> Server: Msg 170, Level 15, State 1, Line 1
> >> Line 1: Incorrect syntax near ')'.
> >>
> >> ¿Dónde puedo encontrar documentación técnica sobre select anidados?
> >>
> >>
> >> Gracias
> >>
> >>
> >
> >
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida