给定日期范围计算星期六的数量

Count # of Saturdays given a date range

我有一个日期时间字段和一个网络字段。 Sat Count 字段由 =IIf(DatePart("w",Fields!DespatchDate.Value)=7,1,0)

完成

你能给我指个方向吗?我可以在 SQL 或 SSRS

中完成

考虑到我们没有提供任何输入或所需的输出,我假设您只想计算给定范围内的星期六:

Select COUNT(*), SUM(Net) 
FROM table 
WHERE Day# = 7 AND Date BETWEEN '2021-02-16' AND '2021-02-23'

假设您想要计算星期六,即使它不属于您的数据集,您需要做的是填充给定范围内的所有日期,然后将其加入您的基础数据集。

这将确保它考虑到一周中的所有天数,而不管在该日期/那一天发生的调度事件。

下面是一些 SQL 代码,可能会帮助您开始。

declare @startdate date = '2021-02-01'
declare @enddate date = '2021-02-28'

if OBJECT_ID ('tempdb..#dates') is not null
drop table #dates

;WITH mycte AS
(
  SELECT CAST(@startdate AS DATETIME) DateValue
  UNION ALL
  SELECT  DateValue + 1
  FROM    mycte   
  WHERE   DateValue + 1 < @enddate
)

SELECT  DateValue into #dates
FROM    mycte
OPTION (MAXRECURSION 0)

select 
d.DateValue
, datepart(weekday,d.DateValue) as day_no 
,case when datepart(weekday,d.DateValue)  = 7 then isnull(t.net,0) else 0 end as sat_net
,case when datepart(weekday,d.DateValue)  = 1 then isnull(t.net,0) else 0 end as sun_net

from #dates d

left join your_table t
    on d.DateValue = t.some_date

drop table #dates

由于我不知道您需要的输出是什么,因此无法进一步总结。但是你明白了!