Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/01/2012, 14:47
AnimaSubtilis
 
Fecha de Ingreso: noviembre-2010
Mensajes: 12
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Promedio por numero de dia entre semana

Buenas a todos, bueno al fin realice una funcion que dice cuantos numero de
por ejemplo Lunes hay en un rango de fechas.

Código:
CREATE   FUNCTION [dbo].[FN_DIAS_WK] (@FECHAINI DATETIME,@FECHAFIN DATETIME,@DIAWK INT)
RETURNS INT
AS  
BEGIN  
  DECLARE @DIASWK INT
  DECLARE @FECHAPUNT DATETIME
  DECLARE @BAND TINYINT
  SET @BAND = 0 
  SET @DIASWK = 0	
  SET @FECHAPUNT = @FECHAINI
  WHILE @FECHAPUNT < @FECHAFIN
	BEGIN
     IF DATEPART(DW,@FECHAPUNT) <> @DIAWK AND @BAND = 0        
		SELECT @FECHAPUNT = DATEADD(DD,1,@FECHAPUNT)
	 IF DATEPART(DW,@FECHAPUNT) = @DIAWK AND @BAND = 0
		SET @BAND = 1
	 IF @BAND = 1
		BEGIN
			SELECT @FECHAPUNT = DATEADD(DD,7,@FECHAPUNT)
			SET @DIASWK = @DIASWK + 1
		END			
	 IF @FECHAPUNT > @FECHAFIN
		BREAK
	 ELSE CONTINUE
	END	
  RETURN @DIASWK  
END
y ya en la consulta original la llamo y calculo el promedio de facturas por hora

Código:
select count(*) facturas,datepart(dw,fechadocumento),datepart(hh,fechadocumento),
count(*)/basura.dbo.FN_DIAS_WK('20110101','20120101',
datepart(dw,fechadocumento))
from fct where idtransaccion = 'fcn'
and idsede = '01' 
and idventa = 'MOSTRADOR' and
fechadocumento > '20110101' and fechadocumento < '20120101' 
group by datepart(dw,fechadocumento),datepart(hh,fechadocumento)
order by 2,3
Bueno ante todo gracias por la respuestas.

espero que esto pueda ayudar a alguien mas adelante