【发布时间】:2015-11-26 17:54:44
【问题描述】:
我正在尝试编写一个允许我选择 the latest year in which every year Value contains an entry 的选择语句
以下面的例子为例:
EarningsYearID EarningsID Year Value
1 1 2015 NULL
2 1 2014 1.27
3 1 2013 3.21
4 2 2015 7.21
5 2 2014 6.97
6 2 2013 2.22
正确答案应该是“2014”,因为 2014 是最近一年,该年的所有条目都包含 NOT NULL 值。
我尝试了以下查询:
将@YearInWhichEarningsExistForAllComparisonCompanies 声明为 int; SET @YearInWhichEarningsExistForAllComparisonCompanies = (SELECT TOP 1 ey.[Year] 从公司 c,收益 e,收益年份 ey 在哪里 c.ticker_id = e.ticker_id AND e.EarningsID = ey.EarningsID AND c.tickerSymbol IN ('AA', 'BB') AND ey.Value 不为空 ORDER by ey.[Year] DESC);但是,这会返回不正确的“2015”,因为存在一个为 NULL 的“2015”条目,我要求所有条目都不是 NULL。因此,下一个可用年份 2014 应该是正确的答案。
希望这是有道理的。
【问题讨论】:
标签: tsql sql-server-2012