CREATE procedure sf_形成考勤统计表 
@m int
as
delete from 考勤统计表--删除已有数据
if exists (select * from 考勤表 where 月份=@m)begin
--从考勤表导入
insert into 考勤统计表
(职员编号,姓名,迟到次数,早退次数,旷工次数,请假次数,年份,月份)select 职员编号,姓名,
       迟到次数 = sum(case when 考勤项目 = '迟到' then 1 else 0 end),
       早退次数 = sum(case when 考勤项目 = '早退' then 1 else 0 end),
       旷工次数 = sum(case when 考勤项目 = '旷工' then 1 else 0 end),
       请假次数 = sum(case when 考勤项目 = '请假' then 1 else 0 end),
   年份,月份
from 考勤表
where 月份=@m
group by 职员编号,姓名,年份,月份
update 考勤统计表 set 考勤扣除=迟到次数*50+早退次数*50+旷工次数*100+请假次数*20
end
GO
以上是我写的存储过程在DELPHI中要实现 在EDIT中写入月份能把相应月份的数据导入考勤统计表,我用的是BDE
procedure TForm7.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.sql.add('exec sf_形成考勤统计表 2 ');
query1.Prepare;
query1.ExecSQL;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from 考勤统计表 where 月份=:tmp1');
query1.ParamByName('tmp1').AsString:=edit1.Text;
query1.Open;
end;
高手们看看怎么改上面的代码啊 主要是把中的query1.sql.add('exec sf_形成考勤统计表 2 ');具体的数字改成我输入EDIT的数字就可以了
高手们帮下我啊,不胜感激