Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/07/2008, 08:55
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Respuesta: Varios Count en select

Tu consulta es muy sencilla pero la compilcaste demasiado leyendo 6 veces la tabla para obtener un resultado que puedes sacar con una sola leida a la tabla.

Tambien coincido con Rootk, debes transformar tu varible al tipo de dato que tiene tu campo, y no al reves, porque si hay 6000 registros en tu tabla en lugar de hacer un convert a la variable haces 6000 converts(1 por cada registro) y eso es lo que te esta pegando mas en el tiempo de respuesta de tu consulta.

Te anexo un ejemplo de como deberia quedar si estas utilizando SQL 2000.

Espero te sirva...

Código:
Alter Procedure usp_Sucursales
@fecConsulta varchar(15)  -- Suponiendo, segun el script que la fecha viene en formato YYYYMMDD
as

Declare @dFecConsulta datetime

Set @dFecConsulta  = convert(datetime, @fecConsulta)

SELECT  cCODSUC
       ,sum (Case When d.cTipo = 'S' Then 1 Else 0 End) TotLlamS
       ,sum (Case When d.cTipo = 'S' Then nDURACI Else 0 End ) DuracionS
       ,sum (Case When d.cTipo = 'S' Then nCstLla Else 0 End ) CostoS

       ,sum (Case When d.cTipo = 'E' Then 1 Else 0 End) TotLlamE
       ,sum (Case When d.cTipo = 'E' Then nDURACI Else 0 End ) DuracionE
       ,sum (Case When d.cTipo = 'E' Then nCstLla Else 0 End ) CostoE
FROM DATOS D
Where dfeclla = @dFecConsulta
group by cCodSuc
order by cCodSuc
Saludos a ambos.
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.