從資料庫選出不重複欄位的值怎麼下? |
答題得分者是:Fishman
|
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
引言: Hi, 請問你的 login 是 unique 的嗎? 在此表應該不是, 因為你要不重複出現 login, 那麼請問篩選條件為何呢? 若是有幾筆是長這樣的, 要如何擇其一呢? login1, xx, 2004-3-1 login1, xx2, 2004-5-4 login2, xya, 2004-2-3 這樣的 login1 是要選哪一筆呢? 另外請問你的資料庫種類為何?這張表存在MS SQL SERVER,其實這表只是舉例,真正表是長這樣地: DESTINATION_CODE nvarchar 20 DURATION int 4 RATE float 8 actdate smalldatetime 4 Tableid int 4 ================== 表名ratetable ==================================== 1.找出編號20的費率表 select * from ratetable where tableid=20 2.找出9月1日開始生效的費率表 select * from ratetable where tableid=20 and actdate<'2004-9-1' 每個DESTINATION_CODE不能重複 select Distinct(DESTINATION_CODE),DURATION,RATE where tableid=20 and actdate<'2004-9-1' 日期要最接近'2004-9-1' 所以加Order by actdate Desc 對嗎? |
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi Kenlin2004, 以下語法你試試看:
SELECT R1.DESTINATION_CODE, R1.DURATION, R1.RATE FROM RATETABLE R1 WHERE R1.TABLEID = 20 AND R1.ACTDATE = (SELECT MAX(ACTDATE) FROM RATETABLE R2 WHERE R2.TABLEID = R1.TABLEID AND R2.DESTINATION_CODE = R1.DESTINATION_CODE AND R2.ACTDATE < '2004-9-1')ps : What's your PK for table RATETABLE ? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
引言: 以下語法你試試看:師兄!好棒~ 謝謝大家SELECT R1.DESTINATION_CODE, R1.DURATION, R1.RATE FROM RATETABLE R1 WHERE R1.TABLEID = 20 AND R1.ACTDATE = (SELECT MAX(ACTDATE) FROM RATETABLE R2 WHERE R2.TABLEID = R1.TABLEID AND R2.DESTINATION_CODE = R1.DESTINATION_CODE AND R2.ACTDATE < '2004-9-1') |
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
引言: 以下語法你試試看:no PK in this table 師兄!好棒~ 謝謝大家SELECT R1.DESTINATION_CODE, R1.DURATION, R1.RATE FROM RATETABLE R1 WHERE R1.TABLEID = 20 AND R1.ACTDATE = (SELECT MAX(ACTDATE) FROM RATETABLE R2 WHERE R2.TABLEID = R1.TABLEID AND R2.DESTINATION_CODE = R1.DESTINATION_CODE AND R2.ACTDATE < '2004-9-1') |
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
|
Kenlin2004
一般會員 發表:20 回覆:33 積分:10 註冊:2004-10-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |