Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2011, 09:48
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Optimizar Consulta

Hola Erick21:

Creo que el problema está en que al generar una tabla temporal no estás especificando ninguna llave ni indice. ¿por qué no hacer el inner join directamente con la tabla? ¿hay alguna razón en especial para hacerlo de esta manera?.

Yo trataría de hacer lo siguiente:

Código SQL:
Ver original
  1. SELECT  
  2. SUM(M_Sueldo) AS Total,
  3. SUM(CASE WHEN R.M_Sueldo = 0 THEN R.M_Sueldo+R.N_Bonif ELSE 0 END) AS Deuda
  4. FROM M_PAGOS R INNER JOIN
  5. M_PERSONAL P ON P.Id_Per=R.Id_Per
  6. WHERE
  7. R.IdTram IN ('02.01','11.00','11.04') AND
  8. R.F_Año BETWEEN '1997' AND '2010' AND
  9. p.IdCp = 820

o también esto debería funcionar...

Código SQL:
Ver original
  1. SELECT  
  2. SUM(M_Sueldo) AS Total,
  3. SUM(CASE WHEN R.M_Sueldo = 0 THEN R.M_Sueldo+R.N_Bonif ELSE 0 END) AS Deuda
  4. FROM M_PAGOS R INNER JOIN
  5. M_PERSONAL P ON P.Id_Per=R.Id_Per AND p.IdCp = 820
  6. WHERE
  7. R.IdTram IN ('02.01','11.00','11.04') AND
  8. R.F_Año BETWEEN '1997' AND '2010'

Revisa también el Plan de Ejecución de la consulta desde el Management Studio, para ver el diagnóstico que te da.

EDITADO: básicamente es la misma respuesta que te da el compañero Libra, solo que 8 minutos más tarde, jejeje. saludos

Saludos
Leo.