線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:978
推到 Plurk!
推到 Facebook!

請問該資料庫搜尋該如何找到第一筆資料

答題得分者是:careychen
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-07 20:18:12 IP:220.132.xxx.xxx 訂閱
我的資料表(access資料庫)有三個欄位,如下列所示:
流水號 日期 淨值
1 2007/12/29 25.3
2 2007/12/30 25.4
3 2007/12/31 25.6
4 2008/01/01 25.1
5 2008/01/02 25.3

我想要找到某個條件搜尋的最前面那一筆資料就好了,但是我不清楚要下什麼語法比較好
用top 1又好像有錯(可能是我下錯),該怎麼來寫呢,是用min、top 1 或limit的語法會比較好?

以下是我用min的語法,感覺也不是很好,而且還會有List index out of bounds(115)的問題( 也許這個問題是因為多執行序害的 )
sSQL := 'select 淨值,日期 from Table1 where 日期 IN (select min(日期) from Table1 where 日期>=#2008/01/01#);'
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-07 20:24:58 IP:59.126.xxx.xxx 訂閱

===================引 用 17kobe 文 章===================
我的資料表(access資料庫)有三個欄位,如下列所示:
流水號 日期 淨值
1 2007/12/29 25.3
2 2007/12/30 25.4
3 2007/12/31 25.6
4 2008/01/01 25.1
5 2008/01/02 25.3

我想要找到某個條件搜尋的最前面那一筆資料就好了,但是我不清楚要下什麼語法比較好
用top 1又好像有錯(可能是我下錯),該怎麼來寫呢,是用min、top 1 或limit的語法會比較好?

以下是我用min的語法,感覺也不是很好,而且還會有List index out of bounds(115)的問題( 也許這個問題是因為多執行序害的 )
sSQL := 'select 淨值,日期 from Table1 where 日期 IN (select min(日期) from Table1 where 日期>=#2008/01/01#);'

看你的要語法,是要找出所有日期大於 2008/1/1 的資料中第一筆,那可以像這樣寫
Select Top 1 淨值, 日期 from Table1 where 日期 >=#2008/1/1# order by 日期

至於 List index out of bounds(115) 這個嘛~~,看看你是不是用 List 之類的東西,然後你拿的陣列值超出他的範圍
------
價值的展現,來自於你用哪一個角度來看待它!!
系統時間:2024-04-28 4:34:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!