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

Como puedo optimizar mi consulta

Estas en el tema de Como puedo optimizar mi consulta en el foro de SQL Server en Foros del Web. Hola, disculpen, quiero saber como puedo hacer mi siguiente procedimiento en una sola consulta, es decir, aki lo que hago primero es seleccionar, despues lo ...
  #1 (permalink)  
Antiguo 14/01/2011, 15:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Como puedo optimizar mi consulta

Hola, disculpen, quiero saber como puedo hacer mi siguiente procedimiento en una sola consulta, es decir, aki lo que hago primero es seleccionar, despues lo guardo en una DB temporal y posteriormente hago otro select en el cual consulto los datos y hago un cout.

El asunto aki es que esto es un procedimiento muy largo, y se que esto podria hacerse en una sola consulta sin necesidad de usar tablas temporales, es decir incluir el count en una misma consulta y mostrar todo pero simplemente no me quiere salir.
Quiero ver si me pueden ayudar un pokito.
Saludos

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[monitor]
  2. @fecha datetime,
  3. @linea nvarchar(5),
  4. @hora nvarchar(15) AS
  5. BEGIN
  6.     SET Nocount ON
  7.  
  8.     SELECT h.hora AS hora1,h.marca,h.codoptima AS codoptimaT,h.target,h.fecha AS     hfecha,P.CODOPTIMA,O.CODIGO,p.hora,p.peso,p.vaso,p.fecha,o.linea
  9.     INTO #temporal1
  10.     FROM optimas AS o
  11.     INNER JOIN pesos AS p ON o.codigo = p.codoptima
  12.     INNER JOIN htargets AS h ON o.codigo = h.codoptima
  13.     WHERE o.linea = @linea
  14.     AND p.fecha >= @fecha AND h.fecha >= @fecha
  15.     AND p.hora = @hora AND h.hora = @hora
  16.  
  17.     SELECT TOP 1 *,(SELECT COUNT(1)total FROM #temporal1) AS totality FROM #temporal1
  18.  
  19. END
  #2 (permalink)  
Antiguo 14/01/2011, 20:13
Avatar de SDEK  
Fecha de Ingreso: diciembre-2009
Ubicación: MX
Mensajes: 156
Antigüedad: 14 años, 4 meses
Puntos: 8
Respuesta: Como puedo optimizar mi consulta

Hola,

Prueba con la función ROW_NUMBER().

Saludos,
__________________
Tecnologías de la Información
Karel Priego
| @karelpriego
  #3 (permalink)  
Antiguo 17/01/2011, 13:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Como puedo optimizar mi consulta

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[monitor2]
  2. @fecha datetime,
  3. @linea nvarchar(5),
  4. @hora nvarchar(15) AS
  5. BEGIN
  6.     SET Nocount ON
  7.  
  8.     SELECT   h.hora AS hora1,h.marca,h.target,h.fecha AS  hfecha,p.hora,p.peso,p.fecha,o.linea
  9.     FROM optimas AS o
  10.     INNER JOIN pesos AS p ON o.codigo = p.codoptima
  11.     INNER JOIN htargets AS h ON o.codigo = h.codoptima
  12.     WHERE o.linea = @linea
  13.     AND p.fecha >= @fecha AND h.fecha >= @fecha
  14.     AND p.hora = @hora AND h.hora = @hora
  15.     ORDER BY fecha
  16. SELECT @@rowcount AS 'RowsReturned'
  17.    
  18.  
  19. END
Hola, al uso al final @@rowcount AS 'RowsReturned' pero si le pongo TOP 1 me devuelve solo 1 y yo quiero el total, quiero usar count en la misma linea pero me marca error, me pueden ayudar

Etiquetas: Ninguno
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 09:27.