--订单号:orderNum
--商品名称:XXXX X个数 单价
--总金额:XX 实付:XX 找零:
--支付时间:XXXXX 付款方式:可记录
CREATE PROCEDURE [dbo].[ZCPrint]
@orderNum int
as
--获取支付信息
declare @total float--总金额
declare @pay float--实付
declare @tip float--找零
declare @payTime datetime--支付时间
select @total=total,@pay=pay,@tip=tip,@payTime=payTime from moneyShow where orderNum=@orderNum
--获取每种商品的名称,单价,个数
declare @gClass char(20)
declare @gName char(10)--商品名称
declare @gNum int--每类商品的个数
declare @price float--每类商品的单价
----使用游标读取数据
declare reader cursor for
select bigGood.goodsClass,avg(smlGoods.price)单价,count(*)个数 from sales,bigGood,smlGoods
where sales.goodsID=smlGoods.goodsID and smlGoods.goodsClass=bigGood.goodsClass
and sales.orderNum=1 group by bigGood.goodsClass;
open reader;--打开游标
WHILE @@FETCH_STATUS=0 --判断FETCH语句是否执行成功,
--使用这种方法只能只能有效读一次,第二次全局变量@@FETCH_STATUS=0就变成不等于0了,导致循环直接退出
BEGIN
--FETCH NEXT FROM @varCursor --读取游标变量中的数据
fetch reader into @gClass,@price,@gNum--将游标中的数据读到变量里面
select @gName=gName from bigGood where goodsClass=@gClass
print('商品名称:'+@gName+'×'+str(@gNum)+' 单价'+str(@price))
END
CLOSE reader --关闭游标
DEALLOCATE reader; --释放游标
print(' 超市小票')
print('总金额:'+str(@total)+' 实付:'+str(@pay)+' 找零'+str(@tip))
--这这里浮点型转换成字符串有精度损失。
print('支付时间:'+ CONVERT(varchar(100),@payTime , 102)+' 付款方式:未开发')
昨天找BUG忘写今早一早补上!!!下次一定不拖到最后写!!