Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/07/2005, 14:34
Avatar de Mithrandir
Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 8 meses
Puntos: 25
Usar subquerys es de la forma más sencilla de hacer un código lento. Es preferible usar JOINs en su lugar... Pero usar producto cartesiano es peor!!, una vez más la solución es usar JOINS. Prueba algo como esto, que soluciona ambos problemas:
Código:
UPDATE T1
SET cantsalida=cast(sum(isnull(ds.cantentrega,0))/4 as int)
FROM #tempo t1
	INNER JOIN dsalidaalmacen ds
		ON ds.coditem=t1.coditem		
	INNER JOIN salidaalmacen s
		ON ds.nrosalida=s.nrosalida
WHERE fechasalida<=getdate()
	and fechasalida>=(GETDATE()-120 )
El Where lo puedes hacer un poco más "estilizado" con algo como:
Código:
WHERE fechasalida BETWEEN getdate() AND DATEADD(Day, -120, getdate())
PD. El código es al vuelo, probablemente tengas que ajustarlo un poco.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche

Última edición por Mithrandir; 22/07/2005 a las 14:50