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

ADOQuery的資料來源可否為另一ADOQuery資料?

答題得分者是:channel
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-26 11:06:33 IP:61.218.xxx.xxx 未訂閱
各位前輩請教一下: 使用 ADOQuery做查詢之後的資料,是否可以給另一個ADOQuery當資料來源再做查詢 如有ADOQuery1及ADOQuery2,ADOQuery2的查詢資料來源是否可為ADOQuery1 如不行可有其它代替方案?? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-26 11:33:23 IP:211.21.xxx.xxx 未訂閱
應該沒辦法吧! 不知道您的需求,不過您可以將兩個ADOQuery中的SQL Statements用Union這個SQL語法,試試看! ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Jeffrey
初階會員


發表:10
回覆:58
積分:38
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-26 11:48:08 IP:211.74.xxx.xxx 未訂閱
如果資料庫支援子查詢,例:SQL Server,可用此功能代之。 例:Select ... From (Select ... From xxx)
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-26 13:19:35 IP:61.220.xxx.xxx 未訂閱
當你使用 ADOQuery做查詢之後的資料,是不可以給再另一個ADOQuery當資料來源再做查詢    但是有一個做法 是可以達到你的需求 就是 filter    你先在adoquery上找到filtered屬性 將它設成True; 然後在某個事件寫 例如 :
  if edit1.text <> '' then
  begin
    filter := 'empno = '''  edit1.text ''' ';
    filtered := True;
  end; 
天行健 君子當自強不息~~@.@ 發表人 - T.J.B 於 2003/02/26 13:26:24
------
天行健
君子當自強不息~~@.@
timhuang
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-26 13:24:27 IP:210.58.xxx.xxx 未訂閱
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-26 16:48:22 IP:61.218.xxx.xxx 未訂閱
如果是要把兩Table Union 起來之後 再做GROUP adoQuery1內容 SELECT 品名,數量 FROM Table1; Union all SELECT 品名,數量 FROM Table2; adoQuery2內容 SELECT 品名, Sum(金額) AS 金額合計 FROM AdoQuery1 GROUP BY 品名; 不知是否有較方便的方法?? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-26 16:59:09 IP:211.21.xxx.xxx 未訂閱
引言: 如果是要把兩Table Union 起來之後 再做GROUP adoQuery1內容 SELECT 品名,數量 FROM Table1; Union all SELECT 品名,數量 FROM Table2; adoQuery2內容 SELECT 品名, Sum(金額) AS 金額合計 FROM AdoQuery1 GROUP BY 品名;
您可以這樣下看看: SELECT 品名, Sum(金額) AS 金額合計 From ( SELECT 品名,數量 FROM Table1; Union all SELECT 品名,數量 FROM Table2; ) GROUP BY 品名; 這語法我在Oracel下過,沒有問題! 不知道您是使用那一種資料庫,您試試看,有問題再問! ~小弟淺見,參考看看
------
~小弟淺見,參考看看~
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-26 17:10:21 IP:61.66.xxx.xxx 未訂閱
引言: 各位前輩請教一下: 使用 ADOQuery做查詢之後的資料,是否可以給另一個ADOQuery當資料來源再做查詢 如有ADOQuery1及ADOQuery2,ADOQuery2的查詢資料來源是否可為ADOQuery1 如不行可有其它代替方案?? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
1.你可以試試 View的方式, 第一段先select 出來建立一個View Table, 因為 view如同Query一樣, 再利用這個View進行第二次select 這個方法做出來的只能查詢(因為View是readonly) 2.可以用select....(select....), 但此方法是只用一個Query, 因為不知道你要用兩個Query的目的何在, 所以如果一定要兩個Query, 此法則不通! 3.如果你是連結M$-SQL的話, 第一次select 出來的資料, 可以 create temp(用法我不是很清楚, 可能要查一下書), 建立一個temp 資料表, 再用此資料表做其他用途 以上純屬個人建議!!!
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-26 18:05:21 IP:61.218.xxx.xxx 未訂閱
引言: 您可以這樣下看看: SELECT 品名, Sum(金額) AS 金額合計 From ( SELECT 品名,數量 FROM Table1; Union all SELECT 品名,數量 FROM Table2; ) GROUP BY 品名; 這語法我在Oracel下過,沒有問題! 不知道您是使用那一種資料庫,您試試看,有問題再問! ~小弟淺見,參考看看
謝謝各位前輩的教導 我是用於 Access資料庫 ,目前使用子查詢己可以了 但其它部份我再測試一下,有問題再來請教各位前輩 另外如果用View時效能是否會比較差 如用多筆資料時但只要10筆資料時?? 因不可以在最前面就用WHERE找出要的部份再處理,不知我的看法對嗎?? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
timhuang
尊榮會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-27 09:47:56 IP:210.58.xxx.xxx 未訂閱
引言: 我是用於 Access資料庫 ,目前使用子查詢己可以了 但其它部份我再測試一下,有問題再來請教各位前輩 另外如果用View時效能是否會比較差 如用多筆資料時但只要10筆資料時?? 因不可以在最前面就用WHERE找出要的部份再處理,不知我的看法對嗎??
用 View 時效能不會比較差, 基本上和子查詢效果相當接近, 原則上是一模一樣的. (但若是 view 上有加 index 時會提高效能!!) 不過你說的在 view 中下條件的話又是另一種狀況了, 這時就 要看你的條件是動態還是靜態來決定是否要使用 view 了. 一般使用 view 的時機在於簡化 query, 並方便 dba 管理使用者 權限, 但對查詢的效能來說基本上是沒有幫助的! (不會因此而提高 或降低效能)
系統時間:2024-05-04 10:31:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!