paradox 用 sql command 開啟,可否用類似 if or case |
尚未結案
|
csc
一般會員 發表:5 回覆:12 積分:3 註冊:2002-04-15 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請教各位先進 select sum(a),sum(b*var) from table 其中 var 的值取決於另一欄位"c" 如果 c=true :var=1 反之 c=false :var=-1 請問該用什麼函數或語法 資料庫為 paradox 謝謝1.praradox 是 local database, 不支援 SQL中的 if .. as 用法 你必須在 fieldEditor 中建立一個 CalcField , mysumVar if c=true then query1mysumVar.Value:= query1b.Value * 1 else query1mysumVar.Value:= query1b.Value * -1 2.得使用 TQuery 來做 3.直接引用 mysumVar的SQL語法 select mysumVar from table...... |
csc
一般會員 發表:5 回覆:12 積分:3 註冊:2002-04-15 發送簡訊給我 |
|
arvinhsu
一般會員 發表:0 回覆:10 積分:7 註冊:2003-04-03 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請教前輩 不是很懂您的意思 是不是說 1.先用query1開啟,需新增一計算欄位,計算var的值 2.再用query2加總query1.var的值 如有錯誤,請加以指導,謝謝誤會了, 只有一個query1 1.query1進入FieldEditor狀態(你應該知道吧), 新增一個calcfield 2.在query1的 onCalcFields Event 中寫(舉例欄位 mysumField query1mysumField.value:= 你的條件運算式 如果有if判斷則 if xxxx then query1mysumField.value:= .... * 1 else query1mysumField.value:= ..... * -1; 3.在 query1的 sql中直接select 這個欄位 select sum(mysumField) ..... 如此不知明瞭否! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
csc
一般會員 發表:5 回覆:12 積分:3 註冊:2002-04-15 發送簡訊給我 |
感謝P.D.前輩
我懂您的意思了
只是我有另一個問題 我的 query1.sql.text 如下
select cust,sum(qty),sum(amt) from table group by cust amt 為新增之計算欄位 在 onCalcFields Event
if query1qty.value>0 then
query1amt.value:=query1price.value
else
query1amt.value:=query1price.value*-1 因此 query1.sql.text 需改為
select cust,qty,price,sum(qty),sum(amt) from table
group by cust,qty,price
如此一來就無法依 cust 來加總了 不知前輩是否了解我的意思
可有辦法解決,再一次謝謝您 也謝謝 arvinhsu 兄
paradox 似乎不支援 case 也謝謝sryang 兄
delphi 5 時,在 help 裡就有了
以為 delphi 7 沒有了
原來是放到那去了
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我瞭解你的意思!
select cust,qty,price from ... 這是屬於 simple SQL語法
select sum(qty),sum(amt) from table 這是 complex SQL , 依SQL結構來說, 如果 select 中有 simple, complex的組合, 必須以
simple的欄位做group by, 依你的需求cust,qty,price為group by
如果你只要以cust這樣執行, 按我目前對sql所能認知的階段那只能
select cust, sum(qty), sum(amt) from ....group by cust囉!
因為你下了sum的語法, 目的就是要取得sum()結果值, 所以cust就成為
sum()的key值, 如果你如下
select sum(qty), sum(amt) from ... 則你只會取到一筆值->全部的總和
換句話說, 當有simplex語法, 其 simple結構中的欄位是為一個key值範圍的
參考數據, 而不是我們所想像select cust, emp 的那樣用法! 發表人 - P.D. 於 2003/07/07 16:21:58
|
csc
一般會員 發表:5 回覆:12 積分:3 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |