Subconsulta de un sp

12/08/2004 - 09:55 por Xavi | Informe spam
Hola a todos!

Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se puede
modificar en ningún caso puesto que se utiliza muchísimo tal como es.

Me interesaría crear un sp que fuera una subconsulta del resultado de
registros que devuelve el primer sp.

Pongo ejemplo:

CREATE PROCEDURE dbo.Consulta
AS
SELECT * FROM Tabla

Esta consulta sería la "intocable"

Yo querría recuperar algo así ( a nivel sintáctico absolutamente
incorrecto )

CREATE PROCEDURE dbo.Subconsulta
AS
SELECT * FROM "dbo.Consulta"
WHERE Estado = 1

Evidentemente este es un ejemplo estúpido. La realidad es que la primera
consulta es muy compleja. Existe la solución de calcar la consulta original
en la subconsulta pero en ningún caso me gustaría tenerla repetida, pues el
mantenimiento de una implicaría el mantenimiento de la otra.

¿Hay alguna idea?

Mil gracias


Xavi

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
12/08/2004 - 11:21 | Informe spam
El resultado de un procedimiento lo puedes grabar en una tabla temporal
previamente creada y filtrar los resultados a partir de los datos de ésta


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Xavi" escribió en el mensaje
news:
Hola a todos!

Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se


puede
modificar en ningún caso puesto que se utiliza muchísimo tal como es.

Me interesaría crear un sp que fuera una subconsulta del resultado de
registros que devuelve el primer sp.

Pongo ejemplo:

CREATE PROCEDURE dbo.Consulta
AS
SELECT * FROM Tabla

Esta consulta sería la "intocable"

Yo querría recuperar algo así ( a nivel sintáctico absolutamente
incorrecto )

CREATE PROCEDURE dbo.Subconsulta
AS
SELECT * FROM "dbo.Consulta"
WHERE Estado = 1

Evidentemente este es un ejemplo estúpido. La realidad es que la primera
consulta es muy compleja. Existe la solución de calcar la consulta


original
en la subconsulta pero en ningún caso me gustaría tenerla repetida, pues


el
mantenimiento de una implicaría el mantenimiento de la otra.

¿Hay alguna idea?

Mil gracias


Xavi


Respuesta Responder a este mensaje
#2 Xavi
12/08/2004 - 14:45 | Informe spam
En primer lugar, gracias por contestar.

Pero ... ¿Cómo puedo guardar el resultado de un sp en una tabla temporal?
¿La tabla temporal quién la crearía? Ten en cuenta que el primer sp tiene
que devolver un conjunto de registro y hay no hay nada que negociar.

¿Podrías exlicar un poco más tu idea, por favor?.

Mil gracias


Xavi


"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:
El resultado de un procedimiento lo puedes grabar en una tabla


temporal
previamente creada y filtrar los resultados a partir de los datos de ésta


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Xavi" escribió en el mensaje
news:
> Hola a todos!
>
> Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se
puede
> modificar en ningún caso puesto que se utiliza muchísimo tal como es.
>
> Me interesaría crear un sp que fuera una subconsulta del resultado de
> registros que devuelve el primer sp.
>
> Pongo ejemplo:
>
> CREATE PROCEDURE dbo.Consulta
> AS
> SELECT * FROM Tabla
>
> Esta consulta sería la "intocable"
>
> Yo querría recuperar algo así ( a nivel sintáctico absolutamente
> incorrecto )
>
> CREATE PROCEDURE dbo.Subconsulta
> AS
> SELECT * FROM "dbo.Consulta"
> WHERE Estado = 1
>
> Evidentemente este es un ejemplo estúpido. La realidad es que la primera
> consulta es muy compleja. Existe la solución de calcar la consulta
original
> en la subconsulta pero en ningún caso me gustaría tenerla repetida, pues
el
> mantenimiento de una implicaría el mantenimiento de la otra.
>
> ¿Hay alguna idea?
>
> Mil gracias
>
>
> Xavi
>
>


Respuesta Responder a este mensaje
#3 Lord Rogers
12/08/2004 - 21:02 | Informe spam
Suponiendo que tienes SQL Server o lago parecido (creo que en Access no se
pueden crear SP), ¿por qué no creas una vista con la consulta del SP, y tu
otro SP lo haces referencando a la vista con las condiciones que quieras?

Saludos,

Lord Rogers
Desde el último lugar del mundo


"Xavi" escribió en el mensaje
news:
Hola a todos!

Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se


puede
modificar en ningún caso puesto que se utiliza muchísimo tal como es.

Me interesaría crear un sp que fuera una subconsulta del resultado de
registros que devuelve el primer sp.

Pongo ejemplo:

CREATE PROCEDURE dbo.Consulta
AS
SELECT * FROM Tabla

Esta consulta sería la "intocable"

Yo querría recuperar algo así ( a nivel sintáctico absolutamente
incorrecto )

CREATE PROCEDURE dbo.Subconsulta
AS
SELECT * FROM "dbo.Consulta"
WHERE Estado = 1

Evidentemente este es un ejemplo estúpido. La realidad es que la primera
consulta es muy compleja. Existe la solución de calcar la consulta


original
en la subconsulta pero en ningún caso me gustaría tenerla repetida, pues


el
mantenimiento de una implicaría el mantenimiento de la otra.

¿Hay alguna idea?

Mil gracias


Xavi


Respuesta Responder a este mensaje
#4 Xavi
13/08/2004 - 10:11 | Informe spam
Gracias por la respuesta.

Como ya he dicho, el SP es suficientemente complejo como para no poderlo
hacer con una vista. El ejemplo era muy sencillo y, sí, tu solución sería
buena. El SP requiere de múltiples parámetros que no puedo implementar con
la vista ( sin mencionar SQL dinámico, funciones, etc ... )

¿Alguna idea?

Gracias


Xavi


"Lord Rogers" escribió en el mensaje
news:
Suponiendo que tienes SQL Server o lago parecido (creo que en Access no se
pueden crear SP), ¿por qué no creas una vista con la consulta del SP, y tu
otro SP lo haces referencando a la vista con las condiciones que quieras?

Saludos,

Lord Rogers
Desde el último lugar del mundo


"Xavi" escribió en el mensaje
news:
> Hola a todos!
>
> Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se
puede
> modificar en ningún caso puesto que se utiliza muchísimo tal como es.
>
> Me interesaría crear un sp que fuera una subconsulta del resultado de
> registros que devuelve el primer sp.
>
> Pongo ejemplo:
>
> CREATE PROCEDURE dbo.Consulta
> AS
> SELECT * FROM Tabla
>
> Esta consulta sería la "intocable"
>
> Yo querría recuperar algo así ( a nivel sintáctico absolutamente
> incorrecto )
>
> CREATE PROCEDURE dbo.Subconsulta
> AS
> SELECT * FROM "dbo.Consulta"
> WHERE Estado = 1
>
> Evidentemente este es un ejemplo estúpido. La realidad es que la primera
> consulta es muy compleja. Existe la solución de calcar la consulta
original
> en la subconsulta pero en ningún caso me gustaría tenerla repetida, pues
el
> mantenimiento de una implicaría el mantenimiento de la otra.
>
> ¿Hay alguna idea?
>
> Mil gracias
>
>
> Xavi
>
>


Respuesta Responder a este mensaje
#5 Carlos Sacristan
13/08/2004 - 11:00 | Informe spam
Perdona por no haberte respondido antes...

Revisa el ejemplo que he creado que simula lo que necesitas:

***************************************
USE northwind
GO
tocar
CREATE PROCEDURE dbo.pa_dameOrders as
SELECT orderid,customerid FROM orders
GO
datos que devuelve el procedimiento anterior
CREATE PROCEDURE dbo.pa_dameTrocitoOrders as
CREATE TABLE #t (o int, c varchar(10))
INSERT #t
EXEC dbo.pa_dameOrders

SELECT * FROM #t WHERE o > 10500
GO

EXECUTE dbo.pa_dameTrocitoOrders

***************************************


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Xavi" escribió en el mensaje
news:#HPn$
En primer lugar, gracias por contestar.

Pero ... ¿Cómo puedo guardar el resultado de un sp en una tabla temporal?
¿La tabla temporal quién la crearía? Ten en cuenta que el primer sp tiene
que devolver un conjunto de registro y hay no hay nada que negociar.

¿Podrías exlicar un poco más tu idea, por favor?.

Mil gracias


Xavi


"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:
> El resultado de un procedimiento lo puedes grabar en una tabla
temporal
> previamente creada y filtrar los resultados a partir de los datos de


ésta
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> Por favor, responder únicamente al foro
> Se agradece la inclusión de sentencias DDL
>
>
> "Xavi" escribió en el mensaje
> news:
> > Hola a todos!
> >
> > Tengo un sp que devuelve un conjunto amplio de registro. Este sp no se
> puede
> > modificar en ningún caso puesto que se utiliza muchísimo tal como es.
> >
> > Me interesaría crear un sp que fuera una subconsulta del resultado de
> > registros que devuelve el primer sp.
> >
> > Pongo ejemplo:
> >
> > CREATE PROCEDURE dbo.Consulta
> > AS
> > SELECT * FROM Tabla
> >
> > Esta consulta sería la "intocable"
> >
> > Yo querría recuperar algo así ( a nivel sintáctico absolutamente
> > incorrecto )
> >
> > CREATE PROCEDURE dbo.Subconsulta
> > AS
> > SELECT * FROM "dbo.Consulta"
> > WHERE Estado = 1
> >
> > Evidentemente este es un ejemplo estúpido. La realidad es que la


primera
> > consulta es muy compleja. Existe la solución de calcar la consulta
> original
> > en la subconsulta pero en ningún caso me gustaría tenerla repetida,


pues
> el
> > mantenimiento de una implicaría el mantenimiento de la otra.
> >
> > ¿Hay alguna idea?
> >
> > Mil gracias
> >
> >
> > Xavi
> >
> >
>
>


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