我不是那么进入数据库而且我在 Microsoft SQL Server 数据库上工作时遇到以下问题。
我有一个名为 RendimentiGS 的表,其中包含如下信息:
ID FondoID DataRiferimento Rendimento
1651 ISPAI 2015-05-01 00:00:00 2.99000
1652 ISPAI 2015-06-01 00:00:00 3.04000
1653 ISPAI 2015-07-01 00:00:00 3.00000
1654 ISPAI 2015-08-01 00:00:00 2.85000
1655 ISPAI 2015-09-01 00:00:00 0.00000
1656 ISPAI 2015-10-01 00:00:00 0.00000
1657 ISPAI 2015-11-01 00:00:00 0.00000
1658 ISPAI 2015-12-01 00:00:00 0.00000
因此,正如您在上表示例中所看到的,字段 Rendimento 包含一些值不同于0的数据,后跟其他值为0的数据。
值得注意的是,从特定记录中,以下 0.00000 作为 Rendimento 字段的值。
特别是在前一种情况下,在此记录之后:
1654 ISPAI 2015-08-01 00:00:00 2.85000
以下所有记录将 0.00000 作为 Rendimento 字段的值。
现在我必须实现一个查询,该查询给出 0.00000 的记录的日期(与 DataRiferimento 字段相关)作为 Rendimento的值字段返回 Rendimento 字段的最后一条记录,其值与 0.00000 不同。
例如:
指定 2015-12-01 00:00:00 的日期与 0.00000 作为 Rendimento 的值的记录相关领域。它返回此记录:
1654 ISPAI 2015-08-01 00:00:00 2.85000
这是"最近的" (与 DataRiferimento 字段相关)记录 Rendimento 字段与 0.00000 不同。
实现这样的查询最聪明的方法是什么?
答案 0 :(得分:0)
自己解决:
SELECT TOP 1 * from RendimentiGS
where FondoID = 'ISPAI' and Rendimento != 0 and DataRiferimento < '2016-02-01'
ORDER BY DataRiferimento DESC