【发布时间】:2021-06-15 11:17:06
【问题描述】:
我的输入数据集如下。 我正在尝试用最后一个可用值填充空值。
输入数据集:
预期数据集:
我尝试过的查询:
SELECT *
,ISNULL(YEAR, (
SELECT TOP 1 YEAR FROM SEQ_SET
WHERE GROUPSEQ <= T.GROUPSEQ
AND YEAR IS NOT NULL
ORDER BY GROUPSEQ DESC)) AS YEAR_APPLY
,ISNULL(QUARTER, (
SELECT TOP 1 QUARTER FROM SEQ_SET
WHERE GROUPSEQ <= T.GROUPSEQ
AND QUARTER IS NOT NULL
ORDER BY GROUPSEQ DESC)) AS QUARTER_APPLY
FROM SEQ_SET T
ORDER BY COMPANY, YEAR, QUARTER
出了什么问题:
所有值都按预期出现,除了 groupseq 6 中的值。(以黄色突出显示的值)。 应该是 Q1 而不是 Q2。
即当有两个以上的空值时,逻辑不起作用
知道我的查询中缺少什么。
参考帖子:
【问题讨论】:
标签: sql sql-server