急!!如何实现?谢谢了(100分)

  • 主题发起人 主题发起人 pckite
  • 开始时间 开始时间
P

pckite

Unregistered / Unconfirmed
GUEST, unregistred user!
字段1:ID
字段2:分数
字段3:总分

如何按分数有选择地由高到低排列或者由低到高排列,排列后第一名的总分加上9分,第二名的总分
加上7分,第三名的总分加上6分,第四名加5分。。。。。。??

急!!如何实现?谢谢了,
 
假设你已经放置一个Table控件Table1,一个Query控件Query1,
你的数据库为“S.db";
Query1的SQL语句如下:
SELECT
ID,分数{如果在ID前面加上DISTINCT语句,则将有相同的分数筛选为一个}
FROM 'S.DB'
ORDER BY 分数 DESC;
语句执行结果将成绩按降序排序,然后可以直接将Query1的
执行结果输出到其它你放置的显示控件上如DBGrid等,
Query1.answer字段即为名次;

写入总分的语句也可以如下:
var
Mc:Integer;
Cj:Integer;
p:Integer;
begin
p:=7;
Table1.Tablename:=s.db;
Table1.Open;
Table1.First;
Fs:=Table1.FieldByName('分数').AsSting;
Zf:=Table1.FieldByName('总分').AsInteger;
Query1.Open;
Fs:=Query1.FieldByName('分数').AsString;
Zf:=Query1.FieldbyName('分数').AsInteger+9;//写入总分;
Table1.Next;
While not Eof(Table1)
do
begin
if Fs=Query1.FieldByname('分数').AsInteger//如果有相同的分数;
then
begin
if Quer1.Frist=True
then
begin
Zf:=Zf+9 //将分数+9;
end
else
Zf:=Zf+p;
end;
end;
Query1.Next;
Zf:=Zf+p;
Table1.Next;
p:=p-1;
end;
end;
 
后退
顶部