如何将表中的数据进行汇总并分组排序(200分)

  • 主题发起人 主题发起人 jianlianghu
  • 开始时间 开始时间
J

jianlianghu

Unregistered / Unconfirmed
GUEST, unregistred user!
数据表结构如下:班组,姓名、完成工时、工时扣分、进度扣分、进度奖分、质量扣分、质量奖分、费用扣分、、费用奖分、纪律扣分、纪律奖分、班组扣分、班组扣分、班组奖分、、分数累计、、分数平均、公司扣分、公司奖分。
要求汇总几个月每个工人的完成工时、工时扣分等并分组排名,请高手帮忙:hujianliang@xjgc.com
 
SELECT 姓名,SUM(NVL(完成工时,0)) 总完成工时,SUM(NVL(工时扣分,0)) 总工时扣分 FROM 表名 GROUP BY 姓名
 
二楼上的错误
 
sql.Add('select 班组,姓名,sum(完成工时),sum(工时扣分),sum(进度扣分),sum(进度奖分),sum(质量扣分),sum(质量奖分),sum(费用扣分),sum(费用奖分),sum(纪律扣分),sum(纪律奖分),sum(班组扣分),sum(班组扣分),sum(班组奖分),sum(分数累计),avg(分数平均),sum(公司扣分),sum(公司奖分) from data2.db group by 班组 where 日期>=:start and 日期<=:end order by 日期 asc,分数累计 desc');
parambyname('start').asdate:=datetimepicker1.DateTime;
parambyname('end').asdate:=datetimepicker2.DateTime;
open;
我这样写,为什么老出错呀,SUM(NVL(完成工时,0))中NVL是什么呀老兄
 
NVL 是oracle的函数,就是如果(工时扣分是null,就用0代替.
你如果用的不是oracle,就找自己的数据库的函数,或者用if进行判断.
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3529812 帮忙啊!
 
Johnny_du,是ORACLE的写法..
看楼主你这样的写法很容易出错的...
lssql:='select * from tablename';
adoqtemp.close;
adoqtemp.sql.clear;
adoqtemp.sql.add(lssql);
adoqtemp.open;
再来SQL SERVER的日期最好用CONVERT(CHAR(10),DATE,20)='1980-01-01'
这样自已写一下不行,我再来答。。。SQL 写太多了,有点不爱写了。。。哈哈。
这样调不是更好吗?
 
我想实现的对每个工人的工时进行求和,如1-7月份的完成工时,工时扣分、进度扣分、进度奖分、质量扣分、质量奖分、费用扣分、费用奖分、纪律扣分、纪律奖分、班组扣分、(班组扣分、班组奖分、分数累计、公司扣分、、公司奖分等进行进行求和怎么办
 
数据库为Paradox7
 
sql server中的isnull对应于oricale的NVL
 
多人接受答案了。
 
后退
顶部