查询以返回工作不正常的业务年度之间的记录

5ktev3wc  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(202)

我发现自己在营业期间查询记录时遇到了问题。在这种情况下,业务年度总是从 01/08/YYYY 结束于 31/07/YYYY . 例如:for 2019-2020 创业: 01/08/2019 末端 31/07/2020 为了 2020-2021 创业: 01/08/2020 末端 31/07/2021 当我今天打开数据库时,尽管是新的一年,记录仍然会出现。好像我的问题从新的业务年度开始就不起作用了。我有:

'To return records for the Current Business year:
SELECT * FROM tblData WHERE (((DateDiff('m',[PaymentDate],DateSerial(Year(Date()),1,1))) Between -6 And 5));

'To return records for Previous Business year: 
SELECT * FROM tblData WHERE (((DateDiff('m',[PaymentDate],DateSerial(Year(Date())-1,1,1))) Between -6 And 5));

我的问题是,如何正确查询当前业务年度和上一业务年度的记录?

8mmmxcuj

8mmmxcuj1#

上一营业年度:

select t.*
from tblData t
where year(dateadd('m', -8, PaymentDate)) = year(date()) - 1

逻辑是从日期中减去8个月,然后提取年份。

t1qtbnec

t1qtbnec2#

如果营业年度的开始和结束是固定的( yyyy/08/01 - yyyy+1/07/31 )那么试试这个——今年:

SELECT t.*
FROM tblData As t
WHERE t.PaymentDate BETWEEN DateSerial(Year(Date()), 8, 1) AND DateSerial(Year(Date())+1, 7, 31);

上一年度:

SELECT t.*
FROM tblData As t
WHERE t.PaymentDate BETWEEN DateSerial(Year(Date())-1, 8, 1) AND DateSerial(Year(Date()), 7, 31);

如果要将年份值传递给查询,请尝试以下操作:

--pass year to the query to grab data for business year yyyy/08/01 - yyyy+1/07-31

PARAMETERS BusinessYear SHORT;

SELECT t.*
FROM tblData As t
WHERE t.PaymentDate BETWEEN DateSerial(Year(BusinessYear), 8, 1) AND DateSerial(Year(BusinessYear)+1, 7, 31);

有关详细信息,请参阅:参数声明(microsoft access sql)

相关问题