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