注册 登录
编程论坛 SQL Server论坛

谢谢. 求助! 存储过程 中 小数点 问题........

lodhppve 发布于 2007-12-04 11:30, 1665 次点击
如:表A字段money 值为:1000        表B 字段yumoney 值为:50.58
用money - yumoney = 949.42  用存储过程怎么写

我是这么写的,但计算出的结果没有小数点
ALTER PROCEDURE ad_viewyumoney
(
@userid int
)
AS
 
 declare @result money
 declare @count money
 declare @exist money
 SET NOCOUNT ON
 begin
  set @count = (select [money] from addvalue where userid = @userid)
  set @exist = (select sum(yumoney)as ymoney from keywords where userid = @userid)
  set @result = @count-@exist
end
  
 SET NOCOUNT OFF
 
 RETURN @result
8 回复
#2
purana2007-12-04 12:16
估计转成decimal比较好.
#3
lodhppve2007-12-04 12:36
我改成 decimal类型,结果还是不行,小数点没有
#4
lodhppve2007-12-04 14:47
大家一起过来帮帮忙啊!
#5
西风独自凉2007-12-04 14:57
numeric,這個不知道可以不
#6
XieLi2007-12-04 15:40
我试了一下我的数据


--数据
CREATE TABLE T (USERID INT,MONEY MONEY)
CREATE TABLE TT(USERID INT ,YUMONEY MONEY)

INSERT INTO T SELECT 1,1.23
UNION SELECT 2,2.23

INSERT INTO TT SELECT 1,1.25
UNION SELECT 1,1.56
UNION SELECT 2,3.23
UNION SELECT 2,2.56

--


CREATE FUNCTION dbo.ad_viewyumoney1(@userid int)
    RETURNS MONEY
AS
BEGIN
    declare @result money
    declare @count money
    declare @exist money
    begin
      set @count = (select [money] from  T where userid = @userid)
      set @exist = (select sum(yumoney)as ymoney  from TT where userid = @userid)
      set @result = @count-@exist
    end
      
    RETURN @result
END
--


SELECT dbo.ad_viewyumoney1(2)


---
结果


-3.5600

--DROP TABLE T
--DROP TABLE TT
--DROP FUNCTION dbo.ad_viewyumoney1
#7
lodhppve2007-12-04 15:40
numeric 这个我也试了,结果返回也只是整数,小数部分没有了,四舍5除了
#8
lodhppve2007-12-05 00:16
谢谢 xieli 你的回答,我的问题才得到了解决! 
#9
ldcr2007-12-05 09:50
呵呵,用函数写好啊
学习了
1