谢谢大家帮我看看什么问题

bbsuner 2003-09-25 02:30:09
我写了一个存储过程,功能是把一段日期内的所有的司机的收入算出来,包括他做为主班司机和替班司机的.然后插入到一个表中去,就是这么简单.我建了一些视图,我保证那些视图没有问题,然后从那些视图里面根据条件把所有属于主班的钱和属于替班的钱分别放到表中的各个字段,可是我现在检索出来的数据全是零,我的视图没有问题,因为我用它们同样的做过数据窗口都检索出来了,所以大家帮我看看是不是哪个地方写的不对.谢谢.我水平很差,还有一些比如是否执行成功的判断条件也没有写,大家一并帮我看看吧,谢谢了.(替班的语句我没写和主的一样,我想主的问题找出来替班的问题一样就出来了)
create procedure acc_sijishouru_proc (@ld_beg datetime,@ld_end datetime) as
declare @ls_hao char(12),
@ls_name varchar(8),
@ln_mainmoney decimal(8,2),
@ln_vicemoney decimal(8,2),
@ln_mainshoumoney decimal(8,2),/*???????????????????????????*/
@ln_mainfumoney decimal(8,2),
@ln_viceshoumoney decimal(8,2),
@ln_vicefumoney decimal(8,2),
@ln_shoumoney decimal(8,2),
@ln_fumoney decimal(8,2)


declare sijiname_cur cursor for
SELECT Trucker.Trucker_No
FROM Trucker
ORDER BY Trucker.Trucker_No ASC ;
open sijiname_cur;
fetch sijiname_cur
into @ls_name
while @@fetch_status =0
begin
SELECT @ln_shoumoney =sum(acc_miansijishoumoney_view.fumoney )
FROM acc_miansijishoumoney_view
WHERE ( acc_miansijishoumoney_view.c_driver_main = @ls_name ) AND
( acc_miansijishoumoney_view.D_paicheriqi >= @ld_beg ) AND
( acc_miansijishoumoney_view.D_paicheriqi <= @ld_end ) ;

if @ln_shoumoney is null
begin
set @ln_shoumoney=0
end
SELECT @ln_fumoney = sum(acc_miansijifumoney_view.fumoney )
FROM acc_miansijifumoney_view
WHERE ( acc_miansijifumoney_view.c_driver_main = @ls_name ) AND
( acc_miansijifumoney_view.D_paicheriqi >= @ld_beg ) AND
( acc_miansijifumoney_view.D_paicheriqi <= @ld_end ) ;
if @ln_fumoney is null
begin
set @ln_fumoney=0
end
select @ln_mainmoney=@ln_mainmoney - @ln_fumoney
if @ln_mainmoney is null
begin
set @ln_mainmoney=0
end
select @ls_hao=convert(char(6),@ld_beg,112)+convert(char(6),@ld_end,112)
INSERT INTO acc_sijishouru_main_tab
( c_riqihao,
c_name,
n_main_lirun,
n_vice_lirun,
n_shouru,
vc_remark )
VALUES ( @ls_hao,
@ls_name,
@ln_mainmoney,
@ln_vicemoney,
null,
null ) ;

if @@error<0
begin
raiserror('??????',16,10)
return

end

fetch sijiname_cur
into @ls_name

end;
close sijiname_cur;
deallocate sijiname_cur;
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kirao 2003-09-26
  • 打赏
  • 举报
回复
你的問題聽起來是很簡單的,寫一個view
你要的數據本來都全部出來了,你考慮
一下是你不用store procedure都可以實現
在前頭用view讀出資料然後作新增

另外store procedure 用了那麼多cursor
速度很慢,我寫了很多復雜store procedure
從沒用過cursor除非不得矣。
bbsuner 2003-09-26
  • 打赏
  • 举报
回复
有些业务比较散不可能一个视图就完事,我用视图做了,用了好几个窗口,一个由标,无谓的,好在我的问题已经解决了,散分吧,来者有分,你们都捡了便宜,下回我有问题,可要多多回答啊,呵呵.
klbt 2003-09-26
  • 打赏
  • 举报
回复
不提倡循环中使用游标。
klbt 2003-09-26
  • 打赏
  • 举报
回复
不提倡循环中使用游标。
eminena 2003-09-25
  • 打赏
  • 举报
回复
用可视化方法建视图!

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧