提问人:BiGXERO 提问时间:5/3/2012 最后编辑:BiGXERO 更新时间:5/4/2012 访问量:877
如何在 Crystal Reports 中为 Ingres 数据库编写 SQL 表达式
How to write SQL Expression for Ingres Database in Crystal Reports
问:
我正在从 Ingres 数据库构建一个 Crystal Report,我只需要最后 7 个。我希望不必为 1000+ 车辆生成所有 800+ 条记录,而是可以编写一个 SQL 语句,大意如下:
SELECT "trigger_readings"."facility_code", "trigger_readings"."trigger_reading", "trigger_readings"."reading_date"
FROM "trigger_readings"
LIMIT 7
但是,在尝试此操作时,我从水晶收到一条错误消息,说:
编译 SQL 表达式时出错: 数据库连接器错误:“5000A:[CA][Ingres ODBC 驱动程序][Ingres]行 1,当在目标列表中指定了列 ('select') 时,FROM 子句是必需的。[数据库供应商代码:2103]'
有没有办法在没有 Crystal Reports 中的 SQL 表达式的情况下实现这一点?如果没有,我该如何修复sql语句?
编辑:正在按日期查找最新记录(只是为了澄清)
答:
1赞
quelgeek
5/4/2012
#1
您使用的是哪个版本的 Ingres?错误消息表明您可能使用的是 Computer Associates (CA) 的非常旧的版本。请注意,这可能很困难。这是可以做到的,如果你需要,我会提供它的代码。所有当前版本都使用 SELECT FIRST n 语法。
你说你想要最后 7 个。那是最后七行吗?按日期排序?即最近的 7 行?
试试这个:
SELECT FIRST 7 tr.facility_code, tr.trigger_reading, tr.reading_date
FROM trigger_readings tr
ORDER BY tr.reading_date DESC;
评论
0赞
BiGXERO
5/4/2012
嗨,quelgeek 尝试了您的解决方案无济于事,即使我将其全部放在一行上,仍然会收到相同的消息。我们使用的 ingres 版本是 2.6(软件接口是在 90 年代初构建的,因此数据库可能同样古老)。很抱歉不清楚。你的权利,我确实想要最近的 7 行。非常感谢!
0赞
BiGXERO
5/9/2012
如果您能为旧版本提供您之前提到的内容,那就太棒了,目前我的解决方法必须在一夜之间运行,因为服务器崩溃的可能性很高。
评论