我使用ADO從關閉的Excel二進制文件中檢索數據。
我在該文件中有2個表格,我想要的是從Sheet1中檢索所有數據,其中ID存在於Sheet2中。
,我能做到這通過做:爲ADO構建正確的SQL字符串以獲取MAX數據日期
sqlstr = "SELECT e.NOTES, u.SPO, e.ID, e.REF, e.PID "
sqlstr = sqlstr & ", e.DESCRIPTION, e.CreateDate "
sqlstr = sqlstr & "FROM [Sheet2$] u "
sqlstr = sqlstr & "INNER JOIN [Sheet1$] e "
sqlstr = sqlstr & "ON e.ID = u.ID;"
問題時出現的特定的ID反映在Sheet1中2個以上的X,但不同的日期。
我需要檢索最高數據ID唯一,所以我嘗試如下:
sqlstr = "SELECT e.NOTES, u.SPO, e.ID, e.REF, e.PID "
sqlstr = sqlstr & ", e.DESCRIPTION, e.CreateDate "
sqlstr = sqlstr & "FROM [Sheet2$] u "
sqlstr = sqlstr & "INNER JOIN (SELECT ID, REF, PID, DESCRIPTION, NOTES, MAX(CreateDate) "
sqlstr = sqlstr & "FROM [Sheet1$] GROUP BY ID, REF, PID, DESCRIPTION, NOTES) e "
sqlstr = sqlstr & "ON e.ID = u.ID;"
不幸的是,這並不工作,給我這個錯誤:
我試圖隔離我子查詢這樣的:
sqlstr = "SELECT ID, REF, PID, DESCRIPTION, NOTES, MAX(CreateDate) "
sqlstr = sqlstr & "FROM [Sheet1$] GROUP BY ID, REF, PID, DESCRIPTION, NOTES;"
它的工作原理音響東北。它僅返回所有ID,且僅爲最大日期。
我的問題是:
- 當我嘗試使用它作爲子查詢爲什麼它不工作。
- 當從Excel文件或數據庫中提取數據時,ADO是否支持子查詢?
- 有沒有一種方法可以使用查詢來獲得我想要的結果?
任何幫助表示讚賞。
澄清:該子查詢如果我使用SQL運行它的作品。我試圖使用ADO工作。這是我第一次在SQL字符串中執行子查詢,用於打開記錄集。所以我想也許我做錯了什麼或者做了些什麼。
+ 1 Nicely Done :) – 2014-09-03 08:13:58
奇妙的是'as CreateDate'部分看起來不起作用。 – L42 2014-09-03 08:41:26