我需要一个查询来显示最大日期/一年中的最后一个日期之后的值(saldo),但我已经尝试过,但它总是显示第一个日期的值。
这是我的查询:
SELECT saldo, MAX(tgl_lap) FROM laporan GROUP BY DATE_FORMAT(tgl_lap,'%Y','%m') ORDER BY DATE_FORMAT(tgl_lap,'%Y','%m') DESC
我的结果:
我的预期结果应该只显示如下红色框中的值:
我需要一个查询来显示最大日期/一年中的最后一个日期之后的值(saldo),但我已经尝试过,但它总是显示第一个日期的值。
这是我的查询:
SELECT saldo, MAX(tgl_lap) FROM laporan GROUP BY DATE_FORMAT(tgl_lap,'%Y','%m') ORDER BY DATE_FORMAT(tgl_lap,'%Y','%m') DESC
我的结果:
我的预期结果应该只显示如下红色框中的值:
select *
From laporan t
where t.tgl_lap =
(
select max(a.tgl_lap)
from laporan a
where year(t.tgl_lap) = year(a.tgl_lap)
)
根据样本数据,考虑到每个日期只有一条记录,子查询将返回一年中的最大日期,主查询将返回一年中最后一个或最大日期的完整记录。
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY YEAR(tgl_lap) ORDER BY tgl_lap DESC) rn
FROM laporan
)
SELECT *
FROM cte
WHERE rn = 1