金额转人民币面值过程。 高手勿进,,免得浪费时间:)

elfzzf 2004-01-02 01:51:36
CREATE PROCEDURE [dbo].[convert_money_par_value] ( @inmoney money) AS
begin
declare @money money --'
,@100num int
,@50num int
,@20num int
,@10num int
,@5num int
,@2num int
,@1num int
select @money=@inmoney
select @money=round(@money,0,1)

select @100num=round(@money/100,0,1), @money=@money-@100num*100
select @50num=round(@money/50,0,1), @money=@money-@50num*50
select @20num=round(@money/20,0,1), @money=@money-@20num*20
select @10num=round(@money/10,0,1), @money=@money-@10num*10
--
select @5num=round(@money/5,0,1), @money=@money-@5num*5
select @2num=round(@money/2,0,1), @money=@money-@2num*2
select @1num=round(@money/1,0,1), @money=@money-@1num*1


select @100num as '100元',@50num as '50元',@20num as '20元',@10num as '10元'
,@5num as '5元',@2num as '2元',@1num as '1元'

END
GO

--结果
-- exec convert_money_par_value 854
-- 100元 50元 20元 10元 5元 2元 1元
- 8 1 0 0 0 2 0
--金额转人民币面值
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
elfzzf 2004-01-02
  • 打赏
  • 举报
回复
修改默认值为 零 CREATE FUNCTION [dbo].[f_convert_money_parvalue] (@inmoney money=0)
elfzzf 2004-01-02
  • 打赏
  • 举报
回复
跟上面一样,只不过是函数
CREATE FUNCTION [dbo].[f_convert_money_parvalue] (@inmoney money)
RETURNS varchar(512) AS
BEGIN

declare @re_str varchar(512)
,@money money --'
,@100num int
,@50num int
,@20num int
,@10num int
,@5num int
,@2num int
,@1num int
select @money=@inmoney
select @money=round(@money,0,1)

select @100num=round(@money/100,0,1), @money=@money-@100num*100
select @50num=round(@money/50,0,1), @money=@money-@50num*50
select @20num=round(@money/20,0,1), @money=@money-@20num*20
select @10num=round(@money/10,0,1), @money=@money-@10num*10
--
select @5num=round(@money/5,0,1), @money=@money-@5num*5
select @2num=round(@money/2,0,1), @money=@money-@2num*2
select @1num=round(@money/1,0,1), @money=@money-@1num*1


--select @100num as '100元',@50num as '50元',@20num as '20元',@10num as '10元'
--,@5num as '5元',@2num as '2元',@1num as '1元'

select @re_str=
case when convert(varchar(128),@100num)>0 then '100元:'+convert(varchar(128),@100num) + '张 ' else '' end
+ case when convert(varchar(128),@50num)>0 then '50元:'+convert(varchar(128),@50num) + '张 ' else '' end
+ case when convert(varchar(128),@20num)>0 then '20元:'+ convert(varchar(128),@20num) + '张 ' else '' end
+ case when convert(varchar(128),@10num)>0 then '10元:'+convert(varchar(128),@10num) + '张 ' else '' end
+ case when convert(varchar(128),@5num)>0 then '5元:' +convert(varchar(128),@5num) + '张 ' else '' end
+ case when convert(varchar(128),@2num)>0 then '2元:'+convert(varchar(128),@2num) + '张 ' else '' end
+ case when convert(varchar(128),@1num)>0 then '1元:'+convert(varchar(128),@1num) + '张 ' else '' end
--select @re_str ='464641'
return @re_str



END

--select dbo.f_convert_money_parvalue( 65464)
--结果 100元:654张 50元:1张 10元:1张 2元:2张




elfzzf 2004-01-02
  • 打赏
  • 举报
回复
哈哈,有星星捧场啊? 快发年终红包了,
lynx1111 2004-01-02
  • 打赏
  • 举报
回复
谢谢!
lynx1111 2004-01-02
  • 打赏
  • 举报
回复
不错。
txlicenhe 2004-01-02
  • 打赏
  • 举报
回复
不错。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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