Query 使用Parameters內容為Where 字串問題?? |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
請教各位前輩 我寫一個 Query 來存取資料庫 但期中的 Where條件可能不同
如有時是Where 1個欄位有時又Where 多個欄位
我的作法如下:
----------------------------SQL 內容------- SELECT A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級, Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) AS 期末數量合計 FROM A_SaleTable_91..歷史庫存 :WhereString <<< Where 條件會有變化 GROUP BY A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級, HAVING Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) <>0 ORDER BY A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級 --------------------------------------------------------------- STKR021.qry_Master.Parameters.ParamByName('WhereString').Value := 'Where A_SaleTable_91..歷史庫存.期末數量>100'; STKR021.qry_Master.Open;但這樣會有錯誤??,因有時可能又依 產品編號,批號 等來查詢 請教各位輩都是如何作的?? 謝謝各位前輩 |
becky
一般會員 發表:4 回覆:9 積分:7 註冊:2003-07-30 發送簡訊給我 |
設三個變數值str1,str2,str3
str1:=SELECT A_SaleTable_91..歷史庫存.產品編號 ,
A_SaleTable_91..歷史庫存.批號,
A_SaleTable_91..歷史庫存.等級,
Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) AS 期末數量 合計
FROM A_SaleTable_91..歷史庫存
str3:=GROUP BY A_SaleTable_91..歷史庫存.產品編號 ,
A_SaleTable_91..歷史庫存.批號,
A_SaleTable_91..歷史庫存.等級,
HAVING Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) <>0 ORDER BY A_SaleTable_91..歷史庫存.產品編號 ,
A_SaleTable_91..歷史庫存.批號,
A_SaleTable_91..歷史庫存.等級 str2則因where條件不同而不同
STKR021.qry_Master.close;
STKR021.qry_Master.sql.clear;
STKR021.qry_Master.SQL.Text :=str1 str2 str3;
STKR021.qry_Master.open;
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
----------------------------SQL 內容------- SELECT A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級, Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) AS 期末數量合計 FROM A_SaleTable_91..歷史庫存 WHERE 1=1 "AND ...." <<< Where 條件會有變化 GROUP BY A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級, HAVING Sum(Round(A_SaleTable_91..歷史庫存.期末數量,0)) <>0 ORDER BY A_SaleTable_91..歷史庫存.產品編號 , A_SaleTable_91..歷史庫存.批號, A_SaleTable_91..歷史庫存.等級 --------------------------------------------------------------- STKR021.qry_Master.Parameters.ParamByName('WhereString').Value := 'And A_SaleTable_91..歷史庫存.期末數量>100'; STKR021.qry_Master.Open;加上紅色那一行後...你所有的條件都只是很單純的變成了 只要加 And 就可以了.. Hope It Help You... TRY TRY SEE... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |