两个视图计算结果-小数位精度不对的问题

karykwan 2009-12-31 12:46:58
现有两个视图:
view_A:

id score
1 50
2 60


view_B:

id score
1 20.348
2 19.222

为何我在把两个视图里的结果相加时:
CREATE VIEW All_A
AS
SELECT
view_A.score+view_B.score as 总分
from view_A JOIN view_B
on view_A.id=view_B.id

所得出来的新视图结果只保留两位小数:

总分
70.35
79.22

注:我想要保留三位小数,请问这里应该怎么改.试了多种方法没法解析,请教
...全文
52 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
karykwan 2009-12-31
  • 打赏
  • 举报
回复
OK了
dawugui 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 karykwan 的回复:]
上述我试过.结果还是一样
[/Quote]
再看2楼呢?
karykwan 2009-12-31
  • 打赏
  • 举报
回复
上述我试过.结果还是一样
dawugui 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
SQL codeCREATEVIEW All_AASSELECTcast(view_A.score+view_B.scoredecimal(18,3))as 总分from view_AJOIN view_Bon view_A.id=view_B.id
[/Quote]
--1楼我少了as ,更改如下:

create table view_A(id int, score int)
insert into view_A values(1 , 50)
insert into view_A values(2 , 60)
create table view_B(id int, score decimal(18,3))
insert into view_B values(1 , 20.348)
insert into view_B values(2 , 19.222)
go

CREATE VIEW All_A
AS
SELECT
cast(view_A.score+view_B.score as decimal(18,3)) as 总分
from view_A JOIN view_B
on view_A.id=view_B.id
go

select * from All_A

drop table view_A , view_B
drop view All_A

/*

总分
--------------------
70.348
79.222

(所影响的行数为 2 行)
*/
dawugui 2009-12-31
  • 打赏
  • 举报
回复
CREATE VIEW All_A 
AS
SELECT
cast(view_A.score+view_B.score decimal(18,3)) as 总分
from view_A JOIN view_B
on view_A.id=view_B.id

22,210

社区成员

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

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