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

從資料庫選出不重複欄位的值怎麼下?

答題得分者是:Fishman
Kenlin2004
一般會員


發表:20
回覆:33
積分:10
註冊:2004-10-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-03 09:28:35 IP:61.30.xxx.xxx 未訂閱
select login,pass,joindate from guest where joindate<'2004-10-10' login欄位的值不能重複(varchar(20)) 師兄,幫幫忙~
cashxin2002
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-03 09:44:44 IP:202.62.xxx.xxx 未訂閱
您好﹗    select Distinct(login), pass,joindate from guest where joindate<'2004-10-10'    ========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-03 09:46:33 IP:203.95.xxx.xxx 未訂閱
Hi, 請問你的 login 是 unique 的嗎? 在此表應該不是, 因為你要不重複出現 login, 那麼請問篩選條件為何呢? 若是有幾筆是長這樣的, 要如何擇其一呢? login1, xx, 2004-3-1 login1, xx2, 2004-5-4 login2, xya, 2004-2-3 這樣的 login1 是要選哪一筆呢? 另外請問你的資料庫種類為何?
Kenlin2004
一般會員


發表:20
回覆:33
積分:10
註冊:2004-10-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-03 10:11:53 IP:61.30.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-03 10:36:00 IP:61.30.xxx.xxx 未訂閱
SELECT DISTINCT(DESTINATION_CODE), DURATION, RATE FROM Ratetable WHERE (Tableid = 20) AND (actdate < '2004-9-1') ORDER BY actdate DESC ============ 語法有錯耶~
cashxin2002
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-03 11:25:19 IP:202.62.xxx.xxx 未訂閱
您好﹗    參考這篇看看﹕ http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19709    ========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟
Fishman
尊榮會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-03 11:44:46 IP:210.65.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-03 12:38:12 IP:61.30.xxx.xxx 未訂閱
引言: 以下語法你試試看:
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-03 12:38:53 IP:61.30.xxx.xxx 未訂閱
引言: 以下語法你試試看:
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')
no PK in this table 師兄!好棒~ 謝謝大家
Kenlin2004
一般會員


發表:20
回覆:33
積分:10
註冊:2004-10-27

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-11-03 12:51:37 IP:61.30.xxx.xxx 未訂閱
還有這方法: SELECT TOP (SELECT COUNT(DISTINCT DESTINATION_CODE) AS Expr1 FROM Ratetable WHERE (Tableid = 20)) DESTINATION_CODE FROM Ratetable WHERE Tableid = 20 and actdate<'2004-9-1' ORDER BY actdate DESC
Kenlin2004
一般會員


發表:20
回覆:33
積分:10
註冊:2004-10-27

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-11-03 12:57:58 IP:61.30.xxx.xxx 未訂閱
SORRY ..剛貼的不算
系統時間:2024-07-01 9:42:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!