因此,我有一個表,我想從另一個字段中的DateTime()值最大的記錄中的一個字段獲取值還有一個領域等於一定的價值。如何獲得基於VFP v8.0中另一個字段的最大值的字段值
示例數據:
Balance Created MeterNumber
7924.252 02/02/2010 10:31:48 AM 2743800
7924.243 02/02/2010 11:01:37 AM 2743876
7924.227 02/02/2010 03:55:50 PM 2743876
我想與特定計數量最大的創建日期時間記錄的平衡。在VFP 7我可以使用:
SELECT a.balance ,MAX(a.created) FROM MyTable a WHERE a.meternumber = '2743876'
但是,在VFP 8.0 OLEDB驅動程序,我用我的ASP.NET頁面我必須符合VFP 8,說,你必須有一個GROUP BY列出每個非在SELECT中列出的聚合字段。如果我將GROUP BY a.balance
添加到我的查詢中,這將返回每個餘額的記錄。
是的,我可以發出一個SET ENGINEBEHAVIOR 70
,但我想知道這是否可以不必恢復到以前的版本?
編輯 我沒有得到弗蘭克佩雷斯查詢工作,但只是將DateTime字段轉換爲SQL IN子句的字符後。請注意使用TTOC()函數包裝DateTime字段。
SELECT ;
MyTable.created, ;
MyTable.balance ;
FROM ;
MyTable ;
WHERE ;
(MyTable.meternumber = '2743876') ;
AND (TTOC(MyTable.created) IN (SELECT TTOC(MAX(created)) FROM MyTable WHERE (meternumber = '2743876'))) ;
所以,你是從VFP外部做這個,比如.Net或其他OleDB連接,以便符合SQL? – DRapp 2010-05-06 16:42:01
是的,使用.NET中的OleDb類。我發送的所有SQL命令仍然必須通過驅動程序與VFP兼容。 – DaveB 2010-05-06 17:54:42