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

如何對 Query 的結果再做 Query ?

尚未結案
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-03 08:33:55 IP:61.217.xxx.xxx 未訂閱
可以對 Query 的結果再做 Query 嗎? 我想對某段日期區間的客戶訂購名細資料庫做分析. 名細檔很大速度很慢.所以想說先把要分析的日期區 間 Select 出來,再對它作其他 Select 的動作. 可行嗎? 該怎麼做? 我目前是用 ClientDataSet ,但發現存成 .cds 後 CommandText 功能就失效了.
cashxin2002
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-03 09:09:27 IP:63.84.xxx.xxx 未訂閱
您好﹗    子查詢就可以完成您的需求了﹒ 舉個簡單的例子來講﹕ 使用子查詢即可﹐以您所述舉例﹕ 有一個客戶資料表﹐現在要查詢客戶資料中所有和客戶名稱為龍林公司在同一地區的客戶資料﹐這里就可使用子查詢達到所需的工作﹕ Select * From 客戶 Where 地區=(Select 地區 From 客戶 Where 客戶名稱='龍林公司') 以上紅色處即為子查詢﹒ 這個例子小弟在前幾日有答過題﹐您也可參考這里﹕ http://delphi.ktop.com.tw/topic.php?TOPIC_ID=36622 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-03 10:06:21 IP:61.217.xxx.xxx 未訂閱
謝謝您這麼快的回應. 因為我的明細檔很大,而且要分析的產品很多,所以想先以 日期區間縮小範圍,減輕 MS SQL Server 的負擔. 我試過先前文章中的 #temp 暫存檔,但用 #temp 卻不行, 用 ##temp 才可以,可惜如果同時有兩個人以上在使用暫 存檔名就會重覆.
cashxin2002
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-03 10:36:33 IP:63.84.xxx.xxx 未訂閱
您好﹗    如果是日期區間的問題﹐您是否有試過在子查詢中使用Between..and..的方法呢﹖這樣就應該可以做一個日期區間﹒    參考看看﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
timhuang
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-03 11:32:01 IP:203.95.xxx.xxx 未訂閱
引言: 我試過先前文章中的 #temp 暫存檔,但用 #temp 卻不行, 用 ##temp 才可以,可惜如果同時有兩個人以上在使用暫 存檔名就會重覆.
使用 #xxxx 的 temp table 在不同使用者間是不會重覆的, 也就是 user a 用 #tmp 和 user b 使用的 #tmp 是完全不相關的, 你會發生重覆有可能是同一使用者(就是同一 connection 下), 之前建立的 #xxxx 的 temp table 沒大 drop 掉又要再建立一個同名的 temp table 哦~~
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-03 12:32:12 IP:61.217.xxx.xxx 未訂閱
當我用 #temp 時.在 Select * from #temp 會說找不到 #temp , 用 ##temp 則可以 Select 到.
timhuang
尊榮會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-03 12:53:41 IP:203.95.xxx.xxx 未訂閱
請問你是用     select xx, xx, xx into #tmp from xx where xxxxx select * from #tmp drop table #tmp 類以這樣的流程嗎?
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-03 15:34:59 IP:61.229.xxx.xxx 未訂閱
有一個方法啊。我前陣子不小心發現的 SELECT * FROM (SELECT * FROM XXX WHERE B =XXX) WHERE C =XXX 月夜 光明 藍更愁
------
月夜 光明 藍更愁
cashxin2002
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-03 17:32:29 IP:63.84.xxx.xxx 未訂閱
引言: 有一個方法啊。我前陣子不小心發現的 SELECT * FROM (SELECT * FROM XXX WHERE B =XXX) WHERE C =XXX 月夜 光明 藍更愁
這就是子查詢(紅色處), 用子查詢對應設定好的區間資料表! 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-03 17:47:11 IP:61.217.xxx.xxx 未訂閱
select xx, xx, xx into #tmp from xx where xxxxx select * from #tmp drop table #tmp 是的我是用以上的方法. 我是用 ADO 連 MS SQL 2000. 如果我用 ##temp ,則在 SQL Server 上可以看到在 tempdb 內有 ##temp 這個 Table ,反之用 #temp 則完全找不到 #temp 這個 Table.可是 select ... into #temp 時,卻又 沒有出現任何錯誤.是到 select * from #temp 才發生錯誤. 也就是找不到 #temp 這個 Table. 衷心感謝回應的大家們.
系統時間:2024-06-28 8:44:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!