select 人名,sum(case when 预计完成时间 >= 实际完成时间 then 1 else 0),sum(case when 预计完成时间 < 实际完成时间 then 1 else 0)
from 工单表
where 际完成时间 between '2002-6-1' and '2002-7-1'
group by 人名没有测试,基本上是这个方法了,试一试吧。
from 工单表
where 际完成时间 between '2002-6-1' and '2002-7-1'
group by 人名没有测试,基本上是这个方法了,试一试吧。
function getDelayRecord(othQueyr:TADOQuery;xm:string;Data1,Data2:TDataTime):integer;在DataSet中加入所有要显示的字段,另建一个Calculated字段,
在onCalcFields事件中写下列语句:
Text:=IntToStr(getDelayRecord(othQuery,DataSet.FieldByName('人名').asstring,Data1,Data2);
from 工单表
where 实际完成时间 between '2002-6-1' and '2002-7-1'
group by 人名
怎么不作Sqlserver版主了吗。
比较忙,所以就辞了。
from 工单表
where 实际完成时间 between '2002-6-1' and '2002-7-1'
group by 人名
我用的是BDE+BCB5.
请二位再帮忙。
(select count (*) from 公单表 as T2 where 预计完成时间>=实际完成时间 and T1.人名=T2.人名) as 定单数,
(select count(*) from 公单表 asT2 where 预计完成时间<实际完成时间
and T1.人名=T2.人名) as 超期数
from 工单表 as T1
where T1.实际完成时间 between '2002-6-1' and '2002-7-1'
order by 人名
避免when出错
用zhxfzhxf1(zhxfzhxf1) 的语句试一下,不过应该加DISTINCT,避免重复。select DISTINCT T1.人名,
(select count (*) from 公单表 as T2 where 预计完成时间>=实际完成时间 and T1.人名=T2.人名) as 定单数,
(select count(*) from 公单表 asT2 where 预计完成时间<实际完成时间
and T1.人名=T2.人名) as 超期数
from 工单表 as T1
where T1.实际完成时间 between '2002-6-1' and '2002-7-1'
order by 人名
(select count (*) from 公单表 as T2 where 预计完成时间>=实际完成时间 and T1.人名=T2.人名) as 定单数,
(select count(*) from 公单表 asT2 where 预计完成时间<实际完成时间
and T1.人名=T2.人名) as 超期数
from 工单表 as T1
where T1.实际完成时间 between '2002-6-1' and '2002-7-1'
order by 人名
(select count (*) from 公单表 as T2 where T1.人名=T2.人名) as 定单数,
(select count(*) from 公单表 asT2 where 预计完成时间<实际完成时间
and T1.人名=T2.人名) as 超期数
from 工单表 as T1
where T1.实际完成时间 between '2002-6-1' and '2002-7-1'
order by 人名
(select count (*) from 公单表 as T2 where T1.人名=T2.人名) as 定单数,
(select count(*) from 公单表 as T2 where T1.预计完成时间<T1.实际完成时间 and T1.人名=T2.人名) as 超期数
from 工单表 as T1
where T1.实际完成时间 between '2002-6-1' and '2002-7-1'
order by 人名
看到消息了吗?
count(*) 与 count(公单编号)应该是一样的<--如果公单编号不为空