S
sw
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我最近在做一个数据库程序,数据库用的是 MS SQL Server,
假设有一个表的结构如下:
类别 开始时间 结束时间 单价
A 1999-12-1 0:0:2 1999-12-1 0:0:59 1.5
B 1999-12-1 0:1:0 1999-12-1 0:3:46 1.2
A 1999-12-1 0:4:3 1999-12-1 0:4:5 1.5
C 1999-12-1 0:7:28 1999-12-1 0:9:3 1.0
B 1999-12-1 0:11:2 1999-12-1 0:17:5 1.2
我现在要做的工作就是:将每条记录的价钱算出来,再求出每一类别的总钱数.
每条记录价钱的计算规则如下:
int DataTime_Diff; //是时间差(单位:秒),即:结束时间-开始时间
int Temp; //是临时变量(单位:分钟)
float Per; //是单价
float Money;
if( DataTime_Diff < 6 )
Temp = 0;
else
{
if( DataTime_Diff%60 == 0 )
Temp = DataTime_Diff/60;
else
Temp = DataTime_Diff/60 + 1;
}
Money = Per * Temp;
上面的这些计算似乎用一条Select语句无法完成,我不想将数据都取出来,然后在外面
计算,只想用SQL语言算,然后将结果显示在DBGrid上,请问各位大侠,这该怎么办?(用
"存储过程"也行,能否把具体SQL语句写出来).
我最近在做一个数据库程序,数据库用的是 MS SQL Server,
假设有一个表的结构如下:
类别 开始时间 结束时间 单价
A 1999-12-1 0:0:2 1999-12-1 0:0:59 1.5
B 1999-12-1 0:1:0 1999-12-1 0:3:46 1.2
A 1999-12-1 0:4:3 1999-12-1 0:4:5 1.5
C 1999-12-1 0:7:28 1999-12-1 0:9:3 1.0
B 1999-12-1 0:11:2 1999-12-1 0:17:5 1.2
我现在要做的工作就是:将每条记录的价钱算出来,再求出每一类别的总钱数.
每条记录价钱的计算规则如下:
int DataTime_Diff; //是时间差(单位:秒),即:结束时间-开始时间
int Temp; //是临时变量(单位:分钟)
float Per; //是单价
float Money;
if( DataTime_Diff < 6 )
Temp = 0;
else
{
if( DataTime_Diff%60 == 0 )
Temp = DataTime_Diff/60;
else
Temp = DataTime_Diff/60 + 1;
}
Money = Per * Temp;
上面的这些计算似乎用一条Select语句无法完成,我不想将数据都取出来,然后在外面
计算,只想用SQL语言算,然后将结果显示在DBGrid上,请问各位大侠,这该怎么办?(用
"存储过程"也行,能否把具体SQL语句写出来).