2012-05-03 40 views
0

我正在從Ingres數據庫構建一個Crystal報表,我只需要最後7個。我希望,而不必生成所有1000+記錄800+車輛,我可以寫一個SQL語句東西的效果:如何在Crystal Reports中爲Ingres數據庫編寫SQL表達式

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

然而,這種嘗試當我得到晶說一個錯誤信息:

Error in compiling SQL Expression: Database Connector Error: '5000A:[CA][Ingres ODBC Driver][Ingres]line 1, FROM clause is mandatory when a column('select') has been specified in the target list. [Database Vendor Code: 2103]'

有沒有一種方法,我可以做到這一點,而不在Crystal Reports SQL表達式?如果不是,我該如何修復sql語句?

編輯:在尋找最近的記錄日期(我只想澄清)

+0

你試過從語句去掉回車,因此它是所有在同一行?錯誤消息使它看起來好像驅動程序沒有看到FROM子句。 –

+0

SQL語句是否在查詢工具中工作? – craig

+0

班尼斯特:試過了。同樣的結果 craig:我試圖通過ODBC連接在Excel 2007中使用查詢工具,它可以在從一個表中獲取數據時工作,但是當我嘗試鏈接表時,會崩潰查詢工具,因此嘗試使用Crystal方法 – BiGXERO

回答

1

是否使用的是安格爾的版本?錯誤消息表明您可能正在使用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

嗨,quelgeek嘗試瞭解決方案即使我把它全部放在一行上,也無濟於事,仍然會得到同樣的信息。我們使用的ingres版本是2.6(它是在90年代初建立的軟件接口,所以數據庫可能同樣老)。 對不起,不清楚。你的權利我想要最近的7行。非常感謝! – BiGXERO

+0

如果您可以提供您之前提到的舊版本,那將是非常棒的,目前我的解決方法必須在一夜之間運行,因爲崩潰服務器的可能性很大。 – BiGXERO

相關問題