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

子查詢

尚未結案
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-02 13:54:54 IP:220.130.xxx.xxx 未訂閱
規格 - 數量 - 金額 aa1 - aa2 - aa3 0 - 10 - 40 2 - 6 - 20 5 - 6 - 5 11 - 10 - 5 9 - 8 - 10 查詢: 規格 >=2(MaskEdit1.Text),數量 >=5(MaskEdit2.Text) , 如符合上述條件的 金額 >= 10(MaskEdit3.Text) 請先進幫我看下面這段程式碼(子查詢)要改哪: With Query1 do begin Close; SQL.Clear; SQL.Add('select * from table1'); SQL.Add('Where CONVERT(aa1,SIGNED)>=' Quotedstr(MaskEdit1.Text)); SQL.Add('('); SQL.Add('select * from table1'); SQL.Add('Where CONVERT(aa3,SIGNED)>=' Quotedstr(MaskEdit3.Text)); // 有效專案 SQL.Add(')'); SQL.Add('and CONVERT(aa2,SIGNED)>=' Quotedstr(MaskEdit2.Text)); open; end;
Fishman
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-02 15:46:13 IP:210.65.xxx.xxx 未訂閱
Hi mirage,    這似乎不需用到子查詢
With Query1 do
    begin
        Close;
        SQL.Clear;
        SQL.Add('select * from table1');
        SQL.Add(' Where CONVERT(aa1,SIGNED)>=' Quotedstr(MaskEdit1.Text));
        SQL.Add(' and CONVERT(aa2,SIGNED)>=' Quotedstr(MaskEdit2.Text));
        SQL.Add(' and CONVERT(aa3,SIGNED)>=' Quotedstr(MaskEdit3.Text));
        open;
    end;
這樣應該就可以了,你可以先試試看 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-02 16:09:40 IP:220.130.xxx.xxx 未訂閱
引言: Hi mirage, 這似乎不需用到子查詢
With Query1 do
    begin
        Close;
        SQL.Clear;
        SQL.Add('select * from table1');
        SQL.Add(' Where CONVERT(aa1,SIGNED)>=' Quotedstr(MaskEdit1.Text));
        SQL.Add(' and CONVERT(aa2,SIGNED)>=' Quotedstr(MaskEdit2.Text));
        SQL.Add(' and CONVERT(aa3,SIGNED)>=' Quotedstr(MaskEdit3.Text));
        open;
    end;
這樣應該就可以了,你可以先試試看 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica"> 感謝您的回覆,因程式必須符合: 規格 >=2(MaskEdit1.Text),數量 >=5(MaskEdit2.Text) 才作 金額 >= 10(MaskEdit3.Text) 之查詢,否則結果會不正確. 請教您下面程式碼要如何修改才不會有錯誤: With Query1 do begin Close; SQL.Clear; SQL.Add('select * from table1'); SQL.Add('Where CONVERT(aa1,SIGNED)>=' Quotedstr(MaskEdit1.Text)); SQL.Add('('); SQL.Add('select * from table1'); SQL.Add('Where CONVERT(aa3,SIGNED)>=' Quotedstr(MaskEdit3.Text)); SQL.Add(')'); SQL.Add('and CONVERT(aa2,SIGNED)>=' Quotedstr(MaskEdit2.Text)); open; end; 謝謝先. 發表人 - mirage 於 2004/06/02 16:11:32
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-02 16:42:10 IP:210.68.xxx.xxx 未訂閱
Hi mirage: 這樣行不行? 想法: 先將符合1,2條件的資料抓進來後, 在抓取符合3條件的資料    
With Query1 do
    begin
        Close;
        SQL.Clear;
        SQL.Add(' Select * from (');
        SQL.Add(' select * from table1');
        SQL.Add(' Where CONVERT(aa1,SIGNED)>=' Quotedstr(MaskEdit1.Text));
        SQL.Add(' and CONVERT(aa2,SIGNED)>=' Quotedstr(MaskEdit2.Text));
        SQL.Add(' ) WHERE CONVERT(aa3,SIGNED)>=' Quotedstr(MaskEdit3.Text));
        open;
    end;
發表人 - yachanga 於 2004/06/02 16:49:53
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-02 16:53:56 IP:210.66.xxx.xxx 未訂閱
不好意思!我有個疑問,你是不是用MySQL資料庫啊? 之前我有印象SIGNED這好像是Integer型態,那還有需要再用Quotedstr這個函數加『'』嗎? 如果改成
With Query1 do
    begin
        Close;
        SQL.Clear;
        SQL.Add(' Select * from (')
        SQL.Add(' select * from table1');
        SQL.Add(' Where CONVERT(aa1,SIGNED)>='   MaskEdit1.Text);
        SQL.Add(' and CONVERT(aa2,SIGNED)>='   MaskEdit2.Text);
        SQL.Add(' ) WHERE CONVERT(aa3,SIGNED)>='   MaskEdit3.Text);
        open;
    end;
不知是否可行? Ian
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-03 01:39:39 IP:220.137.xxx.xxx 未訂閱
蠻好奇的... 覺得照 Fishman 第一次post的應該就會是對的.. 不是嗎?! select * from table1 where aa1>=2 and aa2>=5 and aa3>=10 (不考慮欄位轉型 假設都數值欄位) 這樣會錯嗎.. 還是我沒搞清楚問題.. 或者是您欄位型態在作怪..
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-03 14:17:25 IP:220.130.xxx.xxx 未訂閱
各位先進好: 因為程式碼有50幾個的欄位比對,所以無法將實際狀況寫的很清楚,而我的表達能力並不是很好,造成各位先進困擾,心理感到很抱歉. 現在我正在測試,如有問題再請教先進們.
系統時間:2024-07-03 5:20:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!