交集查詢 |
答題得分者是:Fishman
|
Andy Wu
一般會員 發表:17 回覆:25 積分:18 註冊:2004-02-25 發送簡訊給我 |
|
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
|
Andy Wu
一般會員 發表:17 回覆:25 積分:18 註冊:2004-02-25 發送簡訊給我 |
引言: 看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
引言: select Id1,Id2,Id3 form table where id4=1版主大大~~您開我玩笑喔~~Id4 是我要Select 出來的欄位ㄋㄟ,怎麼當作參數啦~~引言:引言: 看不太懂你的意思,可以再詳細點描述嗎?尤其是下面這句: "請問要如何才能找到這三者共同都有的[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,若是分三次查詢當然就可以利用變數等等來做判斷,只是不知道可不可以直接下指令做到降子的要求 |
Andy Wu
一般會員 發表:17 回覆:25 積分:18 註冊:2004-02-25 發送簡訊給我 |
引言: 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 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 ~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |