0

我正在从 Ingres 数据库构建一个 Crystal Report,我只需要最后 7 个。我希望不必为 800 多辆汽车生成所有 1000 多条记录,我可以编写一条 SQL 语句,其效果如下:

SELECT "trigger_readings"."facility_code", "trigger_readings"."trigger_reading", "trigger_readings"."reading_date"
FROM "trigger_readings"
LIMIT 7

然而,当我尝试这个时,我从水晶那里收到一条错误消息:

编译 SQL 表达式时出错:数据库连接器错误:'5000A:[CA][Ingres ODBC Driver][Ingres] 第 1 行,当在目标列表中指定了列('select')时,FROM 子句是强制性的。[数据库供应商代码:2103]'

有没有一种方法可以在没有水晶报表中的 SQL 表达式的情况下实现这一点?如果没有,我该如何修复 sql 语句?

编辑:我正在按日期查找最新记录(只是为了澄清)

4

1 回答 1

1

您使用的是哪个版本的 Ingres?该错误消息表明您可能正在使用来自 Computer Associates (CA) 的非常旧的版本。请注意,这可能很困难。它可以完成,如果你需要它,我会给出它的代码。所有当前版本都使用 SELECT FIRST n 语法。

你说你想要最后 7 行。那是最后 7 行吗?按日期排序?即最近的 7 行?

尝试这个:

SELECT FIRST 7 tr.facility_code, tr.trigger_reading, tr.reading_date 
FROM trigger_readings tr 
ORDER BY tr.reading_date DESC;
于 2012-05-03T18:13:42.170 回答