SQL WHERE 子句 - 显示每 3 年数据的最佳方式
Posted
技术标签:
【中文标题】SQL WHERE 子句 - 显示每 3 年数据的最佳方式【英文标题】:SQL WHERE clause - best way to display data from every 3 years 【发布时间】:2021-12-31 18:42:16 【问题描述】:我正在尝试找到以每 3 年为间隔(从执行报告/查询的年份计算)按雇用年份显示员工列表的最佳方式。例如,如果 2021 年是报告执行年份,那么它只会显示 2012 年、2015 年、2018 年等年份雇用的员工
下面的 WHERE 子句有效,但它很笨拙,我相信有更好的方法来增加年份,而无需使用添加 -6、-9 等的一长串 OR 语句
WHERE
(EmployeesTable.[Hire Year] = @ExecutionYear -3)
OR
(EmployeesTable.[Hire Year] = @ExecutionYear -6)
OR
(EmployeesTable.[Hire Year] = @ExecutionYear -9)
【问题讨论】:
【参考方案1】:试试这个...
WHERE @ExecutionYear - EmployeesTable.[Hire Year] IN (3,6,9)
【讨论】:
当我运行查询时,会出现一个报表生成器弹出窗口——ExecutionYear 的“定义查询参数”(参数值为使用模数怎么样?
where (EmployeesTable.[Hire Year] - @ExecutionYear) % 3 = 0
【讨论】:
当我运行查询时,会出现一个报表生成器弹出窗口——ExecutionYear 的“定义查询参数”(参数值为以上是关于SQL WHERE 子句 - 显示每 3 年数据的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
SQL - 在 WHERE 子句中使用日期范围的结果集中未显示正确日期