Calculated 欄位之排序 |
尚未結案
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
你好: calculated形態的欄位是開啟後動態運算的,並不是來自資料庫,因此下sql語法自然無法以之排序,要將calculated欄位排序 有以下的方法 1.使用tclientdateset,將calculated欄位型態改為intercalc, 2.動態建立一個新欄位動態消除,在dataset開啟前下sql語法 alter table add ....,然後結束後 drop,在dataset開啟後動態填入這個新增欄位的值,當然這樣已經不是使用calculated欄位了... 提供您作參考..
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
1.使用tclientdateset,將calculated欄位型態改為intercalc,
========================================================
感謝 hahalin 兄, 看了一下元件盤,
tclientdateset 是屬於 midas 的元件,
midas的架構或觀念, 目前尚未接觸, 完全不清楚
若要使用 tclientdateset, 最少要使用到哪些元件?
(現在我是以 ADOConnection ADOQuery 來處理資料)
謝謝!
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 比如說,DataBase 有單價與數量,再 SQL 語法中你可以這樣下 select s.selling_price,
s.ordered_quantity,
(s.selling_price * s.ordered_quantity) amount
from 訂單資料表
where 訂單號碼 = ...
order by
(s.selling_price * s.ordered_quantity) 直接由 DataBase 將該計算欄位直接算出並作為排序條件
(很抱歉,我用的 DataBase 是 Oracle,但是 MS-SQL 應該也可以)
--------------------------------
小弟才疏學淺,若有謬誤請不吝指教
--------------------------------
------
Fishman |
yandav
一般會員 發表:16 回覆:20 積分:7 註冊:2002-10-05 發送簡訊給我 |
感謝 Fishman 兄, 小弟的情況是
calField 是寫在 OnCalcFields 事件中,由某兩欄位之比較運算
而給予另外欄位之值, 如下
if qy1.FieldByName('F1').AsString=qy1.FieldByName('F2').AsString) then
qy1.FieldByName('calField').AsString:=qy1.FieldByName('F3').AsString
else
qy1.FieldByName('calField').AsString:=qy1.FieldByName('F4').AsString; 而非某兩欄位直接運算而得, 像這個情況
該如何寫這 SQL 敘述 ?
謝謝!
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
danajn
一般會員 發表:14 回覆:29 積分:8 註冊:2002-08-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |