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

Query 使用Parameters內容為Where 字串問題??

尚未結案
jeffreck
高階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-28 13:10:09 IP:61.219.xxx.xxx 未訂閱
請教各位前輩    我寫一個 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-28 15:25:39 IP:61.30.xxx.xxx 未訂閱
設三個變數值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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-29 15:14:31 IP:218.165.xxx.xxx 未訂閱
 
----------------------------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...
系統時間:2024-06-29 16:06:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!