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

求助各位大大們,有關最大值與最小值

尚未結案
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-17 13:09:45 IP:203.77.xxx.xxx 未訂閱
請問如果欄位有DATA1,DATA2,DATA3,DATA4,DATA5,DATA6,DATA7,DATA8,DATA9,DATA10 有哪個函數是可以選取最大值與最小值
rightyo
一般會員


發表:16
回覆:22
積分:17
註冊:2004-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-17 13:17:34 IP:61.62.xxx.xxx 未訂閱
Hi... 最大值 max(欄位名稱) 最小值 min(欄位名稱) 以上為access MS-SQL用法 也許遺憾才讓人生美好
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-17 14:01:42 IP:203.77.xxx.xxx 未訂閱
那如果用oracle的話呢? 欄位名稱 MIN(DATA1,DATA2,DATA3~~~~~~~~~~DATA10)會有錯~~~~~~~~~ 好像MIN裏面只能帶一個值~~~~~~~~~~
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-17 14:03:27 IP:203.77.xxx.xxx 未訂閱
那如果用ORACLE呢? MIN(DATA1,DATA2,DATA3~~~~~~~~~~DATA10) 會出現錯誤訊息 MIN裏面好像只能帶一個DATA
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-17 14:24:23 IP:202.62.xxx.xxx 未訂閱
您好﹗    MIN函數和MAX函數后只能帶一個欄位名﹐如果要找出所有欄位的MIN值或MAX值﹐就多設幾個嘍﹕ Select MIN(欄位名1), MIN(欄位名2), MAX(欄位名3), MAX(欄位名4) From 資料表 但如果有注明其它單獨的欄位(不在MIN或MAX的範圍內)時﹐就需要用Group By子句來分類了﹕ Select Name, MIN(欄位名1) From 資料表 Group By Name    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-17 14:39:40 IP:203.77.xxx.xxx 未訂閱
可是我是要從data1,data2~~~~~~~~~~~~``到data10的欄位值中 選最大和選最小 如果單只從min(data1),min(data2),max(data3)~~~~~~ ~~~~~~這樣推感覺好像不太對 execel它不是可以max(a1:a10),我的意思是這樣 可以以這種方法去寫oracle查詢語言嗎? 感謝!不吝指正~~~~~~~~~~~~~~
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-17 15:31:24 IP:202.62.xxx.xxx 未訂閱
您好﹗    据小弟所知﹐SQL語法中不行﹐MIN和MAX彙總函數只能一個一個來﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-17 16:11:11 IP:210.65.xxx.xxx 未訂閱
Hi d8890038,    In Oracle 用 GREATEST & LEAST
SELECT  T.*,
        GREATEST(D1,D2,D3,D4,D5,D6,D7,D8) MAXD,
        LEAST(D1,D2,D3,D4,D5,D6,D7,D8) MIND
FROM    TEST_ABC T
若是要全部資料的最大與最小值,再搭配 MAX & MIN 函數與 SubQuery 即可
SELECT  MAX(MAXD),
        MIN(MIND)
FROM   (SELECT  GREATEST(D1,D2,D3,D4,D5,D6,D7,D8) MAXD,
                LEAST(D1,D2,D3,D4,D5,D6,D7,D8) MIND
        FROM    TEST_ABC T)
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-20 15:11:41 IP:203.77.xxx.xxx 未訂閱
感謝Fishman的指導~~~~~~~~~~~我已經做出來了 我想再問一下 如果用平均值呢? 要用哪個函數,套到之前的例子 用AVG()這個函數,裏面好像只能帶一個值,是嗎? 您可以介紹紡間有哪些書,專門介紹這些指令的書嗎? 像 GREATEST & LEAST這種函數,晝上好像很少寫到這種東西!? 謝謝!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-06-20 16:28:11 IP:210.65.xxx.xxx 未訂閱
Hi d8890038,    1. Avg 與 Max/Min 同屬於 Group Functions,只能有一個欄位輸入,並不能完全符合你的需要,而且目前看來並無現成函數可用,可以試著自己寫一個,或是用複雜的 SQL Command 來達到此需求。    2. 坦白講,Greatest & Least 這兩個指令我也沒用過! 我手頭上沒有 Oracle 的書籍,我都是直接看電子檔,不過不方便直接 post 出來,若有需要,發個簡訊給我,告訴我你的 e-Mail,我再 Mail 給你。     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-06-23 10:29:26 IP:203.77.xxx.xxx 未訂閱
我用 GREATEST & LEAST這個函數出現問題了 就是十筆資料的值會最小值比最大值還大,為何會這樣 可以請各位高手回答我嗎?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-06-23 14:20:11 IP:210.65.xxx.xxx 未訂閱
Hi d8890038,    傳入 greatest 與 least 的欄位是否為相同的資料型態?    GREATEST & LEAST 的說明如下:    GREATEST : Returns the greatest of the list of exprs. All exprs after the first are implicitly converted to the datatype of the first exprs before the comparison. Oracle compares the exprs using nonpadded comparison semantics. Character comparison is based on the value of the character in the database character set. One character is greater than another if it has a higher value. If the value returned by this function is character data, its datatype is always VARCHAR2. LEAST : Returns the least of the list of exprs. All exprs after the first are implicitly converted to the datatype of the first expr before the comparison. Oracle compares the exprs using nonpadded comparison semantics. If the value returned by this function is character data, its datatype is always VARCHAR2. 如果還有問題,建議你 Post 上你的 SQL Command、Table 結構、Table 資料、以及執行結果,以及你需要的結果,以方便判定問題原因及尋求解決方法 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-06-23 19:26:31 IP:203.77.xxx.xxx 未訂閱
我現在的問題是我在TABEL的資料庫,DATA的資料型態已經是設成VARCHAR2 所以是很麻煩的一件事,因為他不是數值 如果單從TABLE的資料庫可以改他的型態嗎? 要不然因為我還要做DATA1~~~~~~~~~~~~~DATA10的運算 如果遇到空白的話,會有錯誤訊息 比如我要把值帶入到EXCELL時 用 MsExcelWorksheet1.cells[1,1].value := (strtofloat(dm1.qr.fields[0].asstring) ~~~~~~~~~~~ (strtofloat(dm1.qr.fields[9].asstring)時 若遇到空白,就說他不是一個float 錯誤訊息是:Project wip.exe raised exception class EDatabaseEroor with message 'QR1:Dataset not in edit or insert mode'.Process stopped. Use step or Run to continue. 至於 greatest 與 least的問題,後來用最難的方法 就是LEAST(A.DATA1 0,A.DATA2 0~~~~~~~~~~~~~~)GREATEST也是以此類推 就是DATA1後面加0 就會變成數值了! 我要的結果是可以算出平均值帶到EXCELL裏~~~~~~~~ 很急~~~~~~~~~~~~~~希望有人可以解決我的問題~~~~~~~~~~~感激感激~~~~~~
lcjan
初階會員


發表:11
回覆:60
積分:29
註冊:2002-03-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-06-23 20:31:36 IP:61.59.xxx.xxx 未訂閱
引言: 我現在的問題是我在TABEL的資料庫,DATA的資料型態已經是設成VARCHAR2 所以是很麻煩的一件事,因為他不是數值 如果單從TABLE的資料庫可以改他的型態嗎? 要不然因為我還要做DATA1~~~~~~~~~~~~~DATA10的運算 如果遇到空白的話,會有錯誤訊息 比如我要把值帶入到EXCELL時 用 MsExcelWorksheet1.cells[1,1].value := (strtofloat(dm1.qr.fields[0].asstring) ~~~~~~~~~~~ (strtofloat(dm1.qr.fields[9].asstring)時 若遇到空白,就說他不是一個float 錯誤訊息是:Project wip.exe raised exception class EDatabaseEroor with message 'QR1:Dataset not in edit or insert mode'.Process stopped. Use step or Run to continue. 至於 greatest 與 least的問題,後來用最難的方法 就是LEAST(A.DATA1 0,A.DATA2 0~~~~~~~~~~~~~~)GREATEST也是以此類推 就是DATA1後面加0 就會變成數值了! 我要的結果是可以算出平均值帶到EXCELL裏~~~~~~~~ 很急~~~~~~~~~~~~~~希望有人可以解決我的問題~~~~~~~~~~~感激感激~~~~~~
可以使用 NVL 來處理Null或空白的問題, 先將null或空白轉成數值0,非空白或非null欄位再利用TO_NUMBER 來做型態轉換運算. TO_NUMBER(NVL(TRIM(FIELD_1),0)) TO_NUMBER(NVL(TRIM(FIELD_2),0))
d8890038
一般會員


發表:3
回覆:11
積分:2
註冊:2005-03-31

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-06-24 09:07:15 IP:203.77.xxx.xxx 未訂閱
TO_NUMBER(NVL(TRIM(FIELD_1),0)) TO_NUMBER(NVL(TRIM(FIELD_2),0)) 這個可以用在delphi上嗎? 我是用oracle 的 好像會出現問題~~~~~~~~~~~
系統時間:2024-06-02 21:49:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!