全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1632
推到 Plurk!
推到 Facebook!

關於 SELECT DISTINCT

 
cooper
一般會員


發表:17
回覆:41
積分:11
註冊:2002-03-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-21 14:34:51 IP:61.231.xxx.xxx 未訂閱
我的TABLE(日記)中有三個欄位 "日期"、"地點"、"事件" 我希望同一天發生的事只出現一次則我用 SELECT DISTINCT 日期 FROM 日記 但是我希望的是能夠access到所有的欄位(日期、地點、事件) 請問我該怎麼下SQL才能做到我想要的功能呢 ? 謝謝各位的回答 :)
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-21 15:27:33 IP:61.59.xxx.xxx 未訂閱
照你的描述,是否為有可以選取日期,然後顯示出相對應的"地點、事件"?? 若是則可如下:假設(日期、地點、事件)為Primary key select distinct 日期 from 日記 ====> ComboBox_日期 select distinct 地點 from 日記 ====> ComboBox_地點 select distinct 事件 from 日記 ====> ComboBox_事件 然後 select * from 日記 where 日期= ComboBox_日期 and 地點=ComboBox_地點 and 事件=ComboBox_事件 就能存取到唯一的一筆記錄了 不知這是不是你想要的??
cooper
一般會員


發表:17
回覆:41
積分:11
註冊:2002-03-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-21 17:17:04 IP:61.231.xxx.xxx 未訂閱
引言: 照你的描述,是否為有可以選取日期,然後顯示出相對應的"地點、事件"?? 若是則可如下:假設(日期、地點、事件)為Primary key select distinct 日期 from 日記 ====> ComboBox_日期 select distinct 地點 from 日記 ====> ComboBox_地點 select distinct 事件 from 日記 ====> ComboBox_事件 然後 select * from 日記 where 日期= ComboBox_日期 and 地點=ComboBox_地點 and 事件=ComboBox_事件 就能存取到唯一的一筆記錄了 不知這是不是你想要的??
不好意思 ~ 這並不是我想要的 ~ 我想要的是假設table中原有100筆record 然後經過"distinct 日期"只剩下10筆 ~ 那我希望能access這10筆的所有fields 而不是只能access到"日期而以 :) 謝謝你的回答 :p
popmailzjw
一般會員


發表:7
回覆:18
積分:5
註冊:2002-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-21 22:00:52 IP:61.144.xxx.xxx 未訂閱
砉斕佽腔扂砑竭祥妗暱,秪峈⺼彆'2002-01-01'涴珨毞衄20 沭暮翹,筍斕砑堤[笢腔珨沭.恀枙岆斕闡珨沭儸?祥褫夔岆20沭笢腔¦睡珨沭勘.涴欴腔褫夔藩珨棒脤堤懂腔賦彆飲岆祥肮腔,涴欴衄蚚鎘?
maker
一般會員


發表:3
回覆:6
積分:1
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-21 22:07:20 IP:61.230.xxx.xxx 未訂閱
引言: 那我希望能access這10筆的所有fields 而不是只能access到"日期而以 ....這句話能不能描述清楚?有點看不懂
------
~~~~沁涼如水 清韻隨吟~~~~
cooper
一般會員


發表:17
回覆:41
積分:11
註冊:2002-03-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-07-21 23:38:41 IP:61.231.xxx.xxx 未訂閱
引言:
引言: 那我希望能access這10筆的所有fields 而不是只能access到"日期而以 ....這句話能不能描述清楚?有點看不懂
table 結構同上 ~ 並假設 table 中有 100 筆資料 如果用 SELECT DISTINCT 日期 FROM 日記; 則傳回 的Recordset中只有10筆 我現在需要的就是讀取這10筆資料的 "事件" 這個欄位 這樣說明可以嗎 ? 謝謝 :p
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-07-22 11:02:28 IP:210.64.xxx.xxx 未訂閱
還是不太明白 不過我之前提的方法若不是你要的… 那麼你有試過巢狀的查詢式嗎? "select distinct 日期 from 日記" ==>RS if rs.RecordCount > 0 then begin while not rs.eof begin select 事件 from "日記" where 日期=rs![日期] rs.movenext end; end; 呵呵…意思明白就好…:p 我Delphi 還不太熟
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-07-22 19:48:02 IP:211.23.xxx.xxx 未訂閱
這樣是做不到的,因為下DISTINCT出來的資料是RANDON出來的資料,你如何知道其在資料庫中的那一筆,這樣你要如何UPDATE回資料庫去 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
denjohn
一般會員


發表:2
回覆:2
積分:0
註冊:2002-04-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-07-23 12:39:59 IP:202.39.xxx.xxx 未訂閱
不知是不是你所要的 select * from 日記 where 日期 in (SELECT DISTINCT 日期 FROM 日記 )
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-07-23 12:46:19 IP:211.20.xxx.xxx 未訂閱
這樣的下法不是有下where跟沒有下where一樣嗎? @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
cooper
一般會員


發表:17
回覆:41
積分:11
註冊:2002-03-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-07-23 16:13:12 IP:61.231.xxx.xxx 未訂閱
引言: 這樣是做不到的,因為下DISTINCT出來的資料是RANDON出來的資料,你如何知道其在資料庫中的那一筆,這樣你要如何UPDATE回資料庫去 @@~~飛翔在天際的精靈~~@@
其實我也覺得好像是不能做到的 @@" 所以我依照ddy兄的建議用一個以上的 欄位來取出我想要的東西 ~ 謝謝大家熱情的回答 :)
s8556026
一般會員


發表:10
回覆:43
積分:15
註冊:2003-07-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-08-18 22:38:20 IP:61.231.xxx.xxx 未訂閱
事實上這是一個group的問題 select first(f1),first(f2),first(f3),date from table1 group by date 一行就解決了
merlin1
一般會員


發表:1
回覆:1
積分:0
註冊:2004-05-13

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-11-03 07:59:03 IP:61.218.xxx.xxx 未訂閱
引言: 事實上這是一個group的問題 select first(f1),first(f2),first(f3),date from table1 group by date 一行就解決了
SQLServer2K 不支援first 請問有其他替代的函數嘛 取出的欄位格式中含有memo格式
系統時間:2024-05-20 19:03:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!