請問資料庫,table欄位重覆的問題~~~~~~~~~~很急~~~~~請各位高手幫忙我 |
尚未結案
|
d8890038
一般會員 ![]() ![]() 發表:3 回覆:11 積分:2 註冊:2005-03-31 發送簡訊給我 |
我要從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 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
程式不是只有一種寫法, 如果你急的話, 請利用兩個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 發送簡訊給我 |
感謝您的回覆:我忘了最後一行還有時間,每一筆的時間都不一樣,這樣會有影響嗎?
我是要取單一的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 發送簡訊給我 |
|
d8890038
一般會員 ![]() ![]() 發表:3 回覆:11 積分:2 註冊:2005-03-31 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |