(急)关于SQL中创建存储过程的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/14 06:27:38
我想用存储过程实现这样的功能,但是不会编写代码!(pb+sql)
表1 字段: 入住单号\入住时间\离店时间\房间价格\押金\应收帐款\结帐余额
表2 字段: 帐单编号\入住单号\消费内容\消费金额\消费时间
这两个表分表在各自的数据窗口对象dw_1和dw_2中,并在同一个窗口下.
想实现的功能如下:
就是点按钮"计算应收帐款"后,计算出应收帐款和结帐金额(应收帐款=客房价格+全部消费金额,结帐余额=应收帐款-押金) ,显示在dw_1中显示.
作毕业论文急用的!!请各位指教!!谢谢!

不用写存储过程的,这样实现还简单一点
你是用pb作的程序吧,
在pb里面这样写
定义应收账款的变量为a ,定义结账余额为b,入住单号变量为c
在窗口上放一个em文本窗口用来填入住单号的。在放两个em窗口用来显示计算出来的应收帐款和结帐余额。
然后在“计算应收帐款”的clicked()事件中代码如下:
c=em_1.text (将文本框中的单号赋值给c)
select (客房价格+全部消费金额)as f1 into :a from 表1 where 入住单号=:c;
select (应收帐款-押金)as f2 into :b 表1 where 入住单号=:c;
em_2.text=a (让文本框显示应收帐款)
em_3.text=c (让文本框显示结帐余额)

你要写存储过程也行(这里用的sql server 数据库)
create proc aaa @a real @b real @i int @row int @rzdh char(10) as //这里是定义存储过程的,我不知道你的表数据类型是什么,所以自己定义的数据类型。(a为应收账款,b为结账余额,i为条件,row是查出的行数,rzdh为查出的入住单号)
select @row=count(*) from 表1 where 应收账款 is null //查出应收账款为空的有几行
set @i = 1
//下面是按查出的入住单号计算应收账款,再更新进表1里
declare yb select 入住单号 from 表1 where 应收账款 is null //按照应收账款为空的条件查出入住单号建立游标
OPEN yb //打开游标
while (@i<=@row) //当条件小于查出的行数时
begin
FETCH NEXT FROM yb into @rzdh 按游标查出入住单号
select @a=(客房价格+全部消费金额) from 表1 where 入住单号=@rzdh //按入住单号计算应收账款并且赋值给a
update 表1 set 应收帐款 =