我有一个计划的工作,每天(早上或晚上或第二天的第二天)运行,将一些报告发送到FTP。
我只想在报告中包括当年的记录。
如果是第二年1月1日上午,我想显示过去一年的所有记录。
如果是1月1日晚上,并且我有新年的记录,我只想包含新年的记录
示例:
transfer date | job run date | Records with year
-----------------|------------------|------------------
30.12.2018 08:00 | 30.12.2018 19:00 | 2018
30.12.2018 08:00 | 31.12.2018 02:00 | 2018
31:12.2018 08:00 | 31.12.2018 19:00 | 2018
31.12.2018 08:00 | 01.01.2019 01:00 | 2018
01.01.2019 08:00 | 01.01.2019 19:00 | 2019
01.01.2019 08:00 | 02.01.2019 01:00 | 2019
最后一列是我想要的记录年份
我想要一个简单的解决方案,以使原始查询不会转换为函数或存储过程等。
我尝试了什么:
SELECT
DateReceived ,
UniqueNumber ,
TransferDate ,
CompanyCode
FROM
ExportData
where
YEAR(convert(datetime,TransferDate)) =
case
when year(convert(datetime,Transferdate))=year(getdate())
and month(getdate()) =1
and day(getdate()) =1
then year(getdate())
when Year(convert(datetime,transferdate))=year(getdate())-1
then year(getdate())-1
end
order by
TransferDate DESC
答案 0 :(得分:0)
您能否在WHERE条件下检查此简单调整对您是否有用。这将只返回表中可用的“最大年份”的记录。
&H8000000