sql语法问题 |
答題得分者是:cashxin2002
|
ntjrr
高階會員 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
('select 项目类型,sum(单项累计) from tb_sf group by 项目类型');
请问前辈, 这样的语法,没有指定任何排序方法,那么查询结果实际上会按什么方法排呢?是随机排,还是仍然会按默认的一种方法排好呢?注:项目类型为中文名称,单项累计是数字;问题二:如果我有一个EDIT1,我想EDIT1.text:=(上面查询结果中指定的某一列某一行中的内容可以吗?)比如说上面的查询结果中栏位是项目类型和单项累计总和,记录有若干条,其中第三条的记录为中药费和100元,我如何才能让EDIT1.text的内容取到100这个值呢?
------
我的编程起步于ktop,我将永远支持ktop |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 資料庫默認的排序方式是資料表架構中的索引欄位﹐在對資料表做異動相關的方法時就能看得出來﹒在下如您所述的語法時﹐其查詢結果會按當前資料集元件擷取資料的原始順序排列(即項目類型欄位值在資料表中出現的順序)﹐而不會重新以其它的方式進行排序﹐除非在SQL文后再加上Order By的子句﹒ 第二個問題﹐不知您擷取資料的規則為何﹐以下僅列出擷取您所述的第三條資料的單項累計總和內容
begin ADOQuery1.Open; ADOQuery1.MoveBy(2); //將資料錄指針向下移動兩筆 Edit1.Text := FloatToStr(ADOQuery1.Fields[1].Value); //您的SQL文回傳兩個欄位﹐在Fields中的排序是從0開始 //所以項目類型欄位的Fields順序是0﹐單項累計欄位的Fields順序是1 end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言: ('select 项目类型,sum(单项累计) from tb_sf group by 项目类型'); 请问前辈, 这样的语法,没有指定任何排序方法,那么查询结果实际上会按什么方法排呢?是随机排,还是仍然会按默认的一种方法排好呢?注:项目类型为中文名称,单项累计是数字;问题二:如果我有一个EDIT1,我想EDIT1.text:=(上面查询结果中指定的某一列某一行中的内容可以吗?)比如说上面的查询结果中栏位是项目类型和单项累计总和,记录有若干条,其中第三条的记录为中药费和100元,我如何才能让EDIT1.text的内容取到100这个值呢?插花: 参考,其会默认按项目类型进行排序 procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin close; sql.Clear; sql.Add('select 项目类型,sum(单项累计) as 单项累计 from tb_sf group by 项目类型'); sql.Add('group by 项目类型'); open; if Locate('项目类型','中药费',[]) then //既然您都知道需得出哪个项目类型的累计总和,可采用此方法 Edit1.Text:=FieldByName('单项累计').AsString; end; end;============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |