Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

aplicar un select a un procedimiento

Estas en el tema de aplicar un select a un procedimiento en el foro de SQL Server en Foros del Web. Buenas tardes Tengo un procedimiento en SQL Server y este esta compuesto por un select bien complejo... que al ejecutarlo me genera un reporte Quisiera ...
  #1 (permalink)  
Antiguo 31/07/2008, 15:27
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Pregunta aplicar un select a un procedimiento

Buenas tardes

Tengo un procedimiento en SQL Server y este esta compuesto por un select bien complejo... que al ejecutarlo me genera un reporte

Quisiera saber cuantos registros tiene ese reporte intente hacer algo así, pero no e funciono

Código:
Select count(*) from (execute procedimiento 'valor1', 'valor2', valor3)
Puedo hacer esto con un select???

Gracias de antemano
__________________
S.L.P.S.
  #2 (permalink)  
Antiguo 31/07/2008, 15:49
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: aplicar un select a un procedimiento

puedes insertar el resultado en una temporal...

Código:
Insert into #MyTempo
execute procedimiento 'valor1', 'valor2', valor3
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 01/08/2008, 10:07
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Sonrisa Respuesta: aplicar un select a un procedimiento

Gracias Andres95

Existe otra forma que no sea crear una tabla???

Les explico por que, la consulta la estoy haciendo desde PHP, y necesito un select que me diga el numero de registros, el crear una tabla complicaría las cosas.

Alguna otra idea??
__________________
S.L.P.S.
  #4 (permalink)  
Antiguo 01/08/2008, 10:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: aplicar un select a un procedimiento

Entonces cree una FUNCION (UDF) que le retorne una tabla.
  #5 (permalink)  
Antiguo 05/08/2008, 08:17
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: aplicar un select a un procedimiento

Gracias iislas

Podrías explicarme un poquito mejor??
__________________
S.L.P.S.
  #6 (permalink)  
Antiguo 05/08/2008, 09:08
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: aplicar un select a un procedimiento

Bueno, es cuestion de que te te des una "vueltecita" por tu ayuda en linea (BOL) y veas la construccion de FUNCIONES DE USUARIO que devuelven tablas.

Crear una función con valores de tabla en línea
El siguiente ejemplo devuelve una función con valores de tabla en línea. Devuelve tres columnas ProductID, Name y el agregado de ventas totales anuales hasta la fecha por tienda como YTD Total para cada producto vendido a la tienda.

Copiar código
USE AdventureWorks;
GO
IF OBJECT_ID (N'Sales.ufn_SalesByStore', N'IF') IS NOT NULL
DROP FUNCTION Sales.ufn_SalesByStore;
GO
CREATE FUNCTION Sales.ufn_SalesByStore (@storeid int)
RETURNS TABLE
AS
RETURN
(
SELECT P.ProductID, P.Name, SUM(SD.LineTotal) AS 'YTD Total'
FROM Production.Product AS P
JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID
JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID
WHERE SH.CustomerID = @storeid
GROUP BY P.ProductID, P.Name
);
GO
Para invocar la función, ejecute esta consulta.

Copiar código
SELECT * FROM Sales.ufn_SalesByStore (602);
  #7 (permalink)  
Antiguo 05/08/2008, 12:35
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: aplicar un select a un procedimiento

Excelente iislas!!!

Cambie los procedimientos a UDF, con sus respectivas modificaciones y me funciono bien, es más practico ver los resultados que con los procedimientos.

Luego estaba revisando lo de las UDF, y se pueden hacer casi lo mismo..

Según su opinión para que es mejor usar cada elemento???

Y muchas gracias ..
__________________
S.L.P.S.
  #8 (permalink)  
Antiguo 05/08/2008, 16:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: aplicar un select a un procedimiento

Bueno, eso tambien esta explicado en los BOL, un store procedure puede recibir parametros y regresar un RESULTSET (conjunto de registros), comunmente se ejecuta asi:

Execute usp_CalculaAntiguedad @Empleado = 125567, @Fecha = Getdate()

Pero no puede ser utilizado en un SELECT (que es lo que querias hacer), a diferencia de una UDF.

SELECT dbo.udf_CalculaAntiguedad(idEmpleado) as Antiguedad, Nombre, APaterno, AMaterno FROM Empleado WHERE................
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.