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

請問資料庫,table欄位重覆的問題~~~~~~~~~~很急~~~~~請各位高手幫忙我

尚未結案
d8890038
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-31 18:18:55 IP:203.77.xxx.xxx 未訂閱
我要從wse_wafer_thickness的table中選取rc_no的單一筆資料,不要重覆 要怎麼做? 例如: RC_NO WAFER_NO DATA1 DATA2 DATA3 DATA4 DATA5 W05030575 #19 458.85 459.40 460.18 458.63 465.2 W05030575 #20 460.25 460.71 461.59 459.73 460.48 W05030298 #01 460.76 461.31 460.59 460.54 461.38 W05030298 #01 460.35 461.51 460.99 459.43 460.38 我如果要取RC_NO的頭前3筆資料,就是若兩筆RC_NO是一樣的話,第二筆去掉 只取第一筆的DATA1,DATA2,DATA3 依取類推……… 再下一筆RC_NO也是這樣,若重覆的話~~~~~~~~~~`也只前面三筆 我有用SELECT distinct(rc_no) from wse_wafer_thickness 但如果用 select distinct(rc_no),data1,data2,data3 from wse_wafer_thickness的話 他的rc_no又會重覆出現,請問有人可以幫我解決嗎?感激不盡!!< >< >
d8890038
一般會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-31 20:26:43 IP:203.77.xxx.xxx 未訂閱
可以有人回答我的問題嗎?感繳不盡
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-31 23:24:34 IP:61.71.xxx.xxx 未訂閱
程式不是只有一種寫法, 如果你急的話, 請利用兩個Query來做 先 Query1.sql.text:= 'select distinct rc_no from wse_wafer_thickness找出所有不重覆的記錄 再用一個 while loop 來讀取每一個query的 data1, data2, data3 query2.sql.text:= 'select data1, data2, data3 from wse_wafer_thickness where rc_no= :irc_no 在while 中 query2.close; query2.parambyname('irc_no').value:= query1.fieldbydname('rc_no').AsStirng; query2.open; 這樣就可以取出data值, 雖然較不程序化, 但以先能達到目的為優先! 補充一點 distinct 會針對select其後所有的欄位, 而不是只對一個欄位而已 發表人 - P.D. 於 2005/05/31 23:26:17
d8890038
一般會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-01 08:20:44 IP:203.77.xxx.xxx 未訂閱
感謝您的回覆:我忘了最後一行還有時間,每一筆的時間都不一樣,這樣會有影響嗎? 我是要取單一的rc_no,然後時間是最早的 比如rc_no=w05030575,create_Datetime為2005/3/7 11:57 rc_no=W05030298, create_datetime為2005/3/8 13:25,可以再麻煩回答此問題嗎? 感激不盡! 例如: RC_NO WAFER_NO DATA1 DATA2 DATA3 DATA4 DATA5 create_datetime W05030575 #19 458.85 459.40 460.18 458.63 465.2 2005/3/7 11:57 W05030575 #20 460.25 460.71 461.59 459.73 460.48 2005/3/7 12:58 W05030298 #01 460.76 461.31 460.59 460.54 461.38 2005/3/8 13:25 W05030298 #01 460.35 461.51 460.99 459.43 460.38 2005/3/8 19:00
Fishman
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-01 08:25:27 IP:210.65.xxx.xxx 未訂閱
Hi d8890038,    請問你的資料庫是!?    Table wse_wafer_thickness 是否有 Unique Key !?     若有,是由哪幾個欄位組 !?     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
d8890038
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-01 08:59:53 IP:203.77.xxx.xxx 未訂閱
我想唯一值應該就是 create_time吧 因為只有它每一筆的時間都是不一樣的~~~~~~~~~~
Fishman
尊榮會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-01 10:20:22 IP:210.65.xxx.xxx 未訂閱
Hi d8890038,
In SQL/Oracle :    SELECT  REC_NO,
        WAFER_NO,
        DATA1,
        DATA2,
        DATA3,
        DATA4,
        DATA5,
        CREATE_DATETIME
FROM    WSE_WAFER_THICKNE T
WHERE   T.CREATE_DATETIME =    (SELECT  MIN(CREATE_DATETIME)
                                FROM    WSE_WAFER_THICKNE T1
                                WHERE   T1.REC_NO = T.REC_NO)    In Oracle Only:
SELECT  REC_NO,
        WAFER_NO,
        DATA1,
        DATA2,
        DATA3,
        DATA4,
        DATA5,
        CREATE_DATETIME
FROM    WSE_WAFER_THICKNE T
WHERE  (REC_NO,CREATE_DATETIME) IN (SELECT  REC_NO,
                                            MIN(CREATE_DATETIME)
                                    FROM    WSE_WAFER_THICKNE
                                    GROUP BY
                                            REC_NO)
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
d8890038
一般會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-01 11:47:12 IP:203.77.xxx.xxx 未訂閱
非常感謝P.D.,FISHMAN給我的指導,我已經測試出來~~~~~~~~~    感恩、感恩!!
系統時間:2024-06-22 4:20:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!