子查詢 |
尚未結案
|
mirage
初階會員 發表:40 回覆:101 積分:28 註冊:2004-01-05 發送簡訊給我 |
規格 - 數量 - 金額
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 發送簡訊給我 |
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 發送簡訊給我 |
引言: 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 發送簡訊給我 |
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 發送簡訊給我 |
不好意思!我有個疑問,你是不是用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 發送簡訊給我 |
|
mirage
初階會員 發表:40 回覆:101 積分:28 註冊:2004-01-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |