将每个月的日期周期设置在日期之间
Set date period for each month to be between dates
不确定如何正确提问。
我有几个 table 用于计数、收入和处理的交易。
通常这些记录每天。所以自然地,如果我想计算收入,它将是该月的第一天到最后一天。
但是,每当我们向客户开具发票时,都不是该月的第一天到最后一天。
是每个月的22号到下个月的21号。
由于所有数据都存储在不同的 table 上,我如何让每个 table 汇总每个月 22 日至 21 日的计数、收入和交易,但它们代表整个月
例如
1 月 21 日 = 22/12/2020 - 21/01/2021
2 月 21 日 = 22/01/2021 - 21/02/2021
...
您可以减去 21 天,然后加上一个月。然后,eomonth()
或类似的东西来识别月份。例如,要计算“一月”
中的行数
select eomonth(thedate) as monthendate,
dateadd(year(thedate), month(thedate), 1) as month_day1
from t cross apply
(values (dateadd(month, 1, dateadd(day, -21, datecol)))
) v(thedate)
不确定如何正确提问。
我有几个 table 用于计数、收入和处理的交易。
通常这些记录每天。所以自然地,如果我想计算收入,它将是该月的第一天到最后一天。
但是,每当我们向客户开具发票时,都不是该月的第一天到最后一天。 是每个月的22号到下个月的21号。
由于所有数据都存储在不同的 table 上,我如何让每个 table 汇总每个月 22 日至 21 日的计数、收入和交易,但它们代表整个月
例如
1 月 21 日 = 22/12/2020 - 21/01/2021 2 月 21 日 = 22/01/2021 - 21/02/2021 ...
您可以减去 21 天,然后加上一个月。然后,eomonth()
或类似的东西来识别月份。例如,要计算“一月”
select eomonth(thedate) as monthendate,
dateadd(year(thedate), month(thedate), 1) as month_day1
from t cross apply
(values (dateadd(month, 1, dateadd(day, -21, datecol)))
) v(thedate)