请问如何对计算字段ORDER BY |
尚未結案
|
newyanglei
一般會員 發表:11 回覆:3 積分:2 註冊:2005-06-14 發送簡訊給我 |
请问如何对计算字段ORDER BY 小弟在对一计算字段使用ORDER BY 时候,程式报错 'InValid Column name 'Sender'',Sender为一计算字段,谢谢,程式代码如下: procedure TOpen.Table1SenderGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Table1.FieldByName('UPR').AsString = EmptyStr then
Text := EmptyStr
else if MatchUPR(Table1.FieldByName('MfrBrNo').AsString, Table1.FieldByName('UPR').AsString) then
Text := Table1.FieldByName('MfrName').AsString
else if MatchUPR(Table1.FieldByName('SubrBrNo').AsString, Table1.FieldByName('UPR').AsString) then
Text := Table1.FieldByName('SubrName').AsString
else
Text := 'UNKNOWN';
end; procedure TOpen.btnSearchClick(Sender: TObject);
var
SQLText: string;
begin
........
........
if cbxorderby.ItemIndex > 0 then
begin
case cbxorderby.ItemIndex of
1 : SQLText:= SQLText ' order by UPR';
2 : SQLText:= SQLText ' order by ApprovalNo';
3 : SQLText:= SQLText ' order by Sender';
.........
.........
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
newyanglei 您好:
如何对计算字段ORDER BY?可以采用如下方法试试:
假如:
select field1,sum(field2)as sender from table group by field1 order by 2 //sender为计算字段,在第二栏,所以就order by 2,如果是第三栏的话,select field1,field3,sum(field2)as sender from table group by field1,field3 order by 3 ,就如此类推order by 3。
试试看 <>
============================
为什么经过多年以后,得失的过程如此冷漠
============================
>
|
newyanglei
一般會員 發表:11 回覆:3 積分:2 註冊:2005-06-14 發送簡訊給我 |
|
newyanglei
一般會員 發表:11 回覆:3 積分:2 註冊:2005-06-14 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi newyanglei,
In Oracle : select filed1, filed2, filed3, decode(sign(filed1),1,file2,-1,filed3,'Unkown') sender from yourtabe order by decode(sign(filed1),1,file2,-1,filed3,'Unkown') In SQL Server : select filed1, filed2, filed3, case when filed1 > 0 then field2 when filed1 < 0 then filed3 else 'unknown' end as sender from YourTable order by when filed1 > 0 then field2 when filed1 < 0 then filed3 else 'unknown' end In Access : select filed1, filed2, filed3, iif(filed1>0,filed2,iif(filed1<0,Field3,'Unknown')) as sender from YourTable order by iif(filed1>0,filed2,iif(filed1<0,Field3,'Unknown'))---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |