varias de tus tablas no tienen indices, y otra cosa si revisas bien estas repitiendo muchisimo codigo que puedes poner en variables veo que tienes
Código SQL:
Ver originalSELECT COUNT(DATEDIFF(DAY,aws.Fecha_SPP,'2014-06-30')
y eso lo puedes poner en una variable y nada se calcula una vez ese valor y despues lo usas todas las demas veces pero sin volver a calcularlo, aqui en tu query cada vez que mandas llamar ese query lo calcula y tienes como 20 llamadas a eso.....