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

交集查詢

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


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-20 06:23:50 IP:61.229.xxx.xxx 未訂閱
Id1 Id2 Id3 Id4 1 1 1 1 1 1 1 2 1 1 1 3 1 1 2 1 1 1 3 1 傳入參數Id1, Id2, Id3,假設傳入的值為(1,1,1)、(1,1,2)、(1,1,3),請問要如何才能找到這三者共同都有的[Id4] = 1 ? 另外,傳入的個數不一定,可能一次傳入N組...
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-20 09:14:06 IP:61.222.xxx.xxx 未訂閱
看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[Id4] = 1 "
Andy Wu
一般會員


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-20 10:11:10 IP:203.204.xxx.xxx 未訂閱
引言: 看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[Id4] = 1 "
舉例來說,Select Id4 From table Where Id1 = 1 And Id2 = 1 And Id3 = 1,可得到Id4 = 1, 2, 3 若是查詢Id1=1, Id2=1, Id3 = 2,可得到Id4 = 1 Id1=1, Id2=1, Id3 = 3,可得到Id4 = 1 我希望的是找出(1,1,1)(1,1,2)(1,1,3)共同的交集,也就是Id4 = 1,若是分三次查詢當然就可以利用變數等等來做判斷,只是不知道可不可以直接下指令做到降子的要求
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-20 10:44:00 IP:61.56.xxx.xxx 未訂閱
select Id1,Id2,Id3  form table where id4=1
引言:
引言: 看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[Id4] = 1 "
舉例來說,Select Id4 From table Where Id1 = 1 And Id2 = 1 And Id3 = 1,可得到Id4 = 1, 2, 3 若是查詢Id1=1, Id2=1, Id3 = 2,可得到Id4 = 1 Id1=1, Id2=1, Id3 = 3,可得到Id4 = 1 我希望的是找出(1,1,1)(1,1,2)(1,1,3)共同的交集,也就是Id4 = 1,若是分三次查詢當然就可以利用變數等等來做判斷,只是不知道可不可以直接下指令做到降子的要求
Fishman
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-20 10:45:15 IP:210.65.xxx.xxx 未訂閱
Hi Andy Wu,    1.直接於程式中動態產生已下語法即可
SELECT  ID4 
FROM    TABLENAME 
WHERE   (ID1 = 1 AND ID2 = 1 AND ID3 = 1)
AND     (ID1 = 1 AND ID2 = 1 AND ID3 = 2)
AND     (ID1 = 1 AND ID2 = 1 AND ID3 = 3)
2.或是於前端設定 FILTER 屬性過濾資料 3.SQL 交集語法為 INTERSECT,不過此 CASE 不適用,而且僅 Oracle 可用,用法詳見 http://delphi.ktop.com.tw/topic.php?topic_id=46127 4.使用 SQL 中 IN語法為動態指定,目前無解 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41823 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
Andy Wu
一般會員


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-20 11:17:54 IP:203.204.xxx.xxx 未訂閱
引言: select Id1,Id2,Id3 form table where id4=1
引言:
引言: 看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[Id4] = 1 "
舉例來說,Select Id4 From table Where Id1 = 1 And Id2 = 1 And Id3 = 1,可得到Id4 = 1, 2, 3 若是查詢Id1=1, Id2=1, Id3 = 2,可得到Id4 = 1 Id1=1, Id2=1, Id3 = 3,可得到Id4 = 1 我希望的是找出(1,1,1)(1,1,2)(1,1,3)共同的交集,也就是Id4 = 1,若是分三次查詢當然就可以利用變數等等來做判斷,只是不知道可不可以直接下指令做到降子的要求
版主大大~~您開我玩笑喔~~Id4 是我要Select 出來的欄位ㄋㄟ,怎麼當作參數啦~~
Andy Wu
一般會員


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-20 11:27:21 IP:203.204.xxx.xxx 未訂閱
引言: Hi Andy Wu, 1.直接於程式中動態產生已下語法即可
SELECT  ID4 
FROM    TABLENAME 
WHERE   (ID1 = 1 AND ID2 = 1 AND ID3 = 1)
AND     (ID1 = 1 AND ID2 = 1 AND ID3 = 2)
AND     (ID1 = 1 AND ID2 = 1 AND ID3 = 3)
Id3 = 1,2,3 ,降子Select出來的資料數是0 2.或是於前端設定 FILTER 屬性過濾資料 能用什麼條件Filter呢? 3.SQL 交集語法為 INTERSECT,不過此 CASE 不適用,而且僅 Oracle 可用,用法詳見 http://delphi.ktop.com.tw/topic.php?topic_id=46127 4.使用 SQL 中 IN語法為動態指定,目前無解 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41823 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica">
sugar
一般會員


發表:6
回覆:15
積分:9
註冊:2003-05-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-20 13:06:15 IP:210.243.xxx.xxx 未訂閱
select id4 from aaa where (id1=1 and id2=1 and id3=1) or (id1=1 and id2=1 and id3=2) or (id1=1 and id2=1 and id3=3) group by id4 having count(id4)=3 發表人 - sugar 於 2004/05/20 13:08:33
Fishman
尊榮會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-20 13:09:18 IP:210.65.xxx.xxx 未訂閱
Hi Andy Wu,    Id3 = 1,2,3 --> 錯,正確寫法 Id3 in (1,2,3) 一時大意,寫錯語法,正確語法應該如下
SELECT  DISTINCT
        ID4
FROM    TABLE_NAME
WHERE   ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 1)
AND     ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 2)
AND     ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 3)
至於用 FILTER 應該是不可行 發表人 -
------
Fishman
Andy Wu
一般會員


發表:17
回覆:25
積分:18
註冊:2004-02-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-05-20 14:02:30 IP:203.204.xxx.xxx 未訂閱
引言: Hi Andy Wu, Id3 = 1,2,3 --> 錯,正確寫法 Id3 in (1,2,3) 一時大意,寫錯語法,正確語法應該如下
SELECT  DISTINCT
        ID4
FROM    TABLE_NAME
WHERE   ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 1)
AND     ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 2)
AND     ID4 IN (SELECT ID4 FROM TABLE_NAME WHERE ID1 = 1 AND ID2 = 1 AND ID3 = 3)
至於用 FILTER 應該是不可行 發表人 - >< face="Verdana, Arial, Helvetica"> Okay ~~ Thanks ~~
系統時間:2024-09-03 17:38:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!