每天计数返回错误值
Posted
技术标签:
【中文标题】每天计数返回错误值【英文标题】:Count for each day return wrong value 【发布时间】:2021-07-08 03:32:51 【问题描述】:以下代码每天计数 1,从今天(2021 年 4 月 13 日)到月底累加,周六、周日和工作日的总和。
;WITH mycte AS (
SELECT GETDATE() DateValue
UNION ALL
SELECT DateValue + 1
FROM mycte
WHERE DateValue < EOMONTH(dateadd(day,-1, getdate()))
)
select
count(case when datepart(dw, DateValue) = 1 then 1 end) SunCount
, count(case when datepart(dw, DateValue) = 7 then 1 end) SatCount
, count(case when datepart(dw, DateValue) between 1 and 7 then 1 end) WeekCount
from mycte
对于今天(2021 年 4 月 13 日),我预计周六 = 2、周日 = 2 和工作日为 14,但到 4 月底我得到了 18 - 为什么?
【问题讨论】:
【参考方案1】:我认为这是因为 'between' 又包括 1 和 7,下面的查询应该给你剩余的 14 周天数
;WITH mycte AS (
SELECT GETDATE() DateValue
UNION ALL
SELECT DateValue + 1
FROM mycte
WHERE DateValue < EOMONTH(dateadd(day,-1, getdate()))
)
select
count(case when datepart(dw, DateValue) = 1 then 1 end) SunCount
, count(case when datepart(dw, DateValue) = 7 then 1 end) SatCount
, count(case when datepart(dw, DateValue) between 2 and 6 then 1 end) WeekCount
from mycte
【讨论】:
是的,我进行了更改并看到了您的答案以上是关于每天计数返回错误值的主要内容,如果未能解决你的问题,请参考以下文章
apache在发布请求时返回403错误,输入变量计数保持不变,值发生变化