Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

怎样控制交叉表查询“值”字段的小数位数?

清风徐来  发表于:2016-04-12 17:45:19  
复制

求教:access交叉表查询的设计视图中“总计”字段的属性表里可以设置查询结果的小数位数,但在“值”字段的属性表里却没有设置小数位数的选项,怎样控制“值”字段的小数位数?我在sql语句中用“cast(expression AS decimal(a,b))”处理,提示语法错误(操作符丢失),请大神指点。谢谢!

 

Top
朱先生 发表于:2016-04-12 18:28:08

val(Format([字段],"#.000"))    要几位小数则用几个   0  

ROUND(字段,3)  3位小数

试试



清风徐来 发表于:2016-04-18 15:18:48
朱先生:您好!我需要控制小数位数的是交叉表查询“值”列中的数值,这一列我用了NZ函数转换查询到的null值,null值在查询结果中显示为“0“,小于1的非null值显示为类似".234"这样的格式,而我希望得到的是“0.0000”“0.2340”这样的格式,即不仅要控制小数位数,还要控制其显示格式,您给的代码好像无法写进这个交叉表查询的sql语句,有没有别的办法,请指教。谢谢!

朱先生 发表于:2016-04-18 18:40:59

Format([字段],"#0.0000") 可以控制4位小数,但控制不了格式

你要的格式是要显示的数据靠右对齐,对吗? 



清风徐来 发表于:2016-04-19 08:13:06

谢谢朱先生!我需要的格式是0要显示为0.0000,.234这种小于1的数不要省略小数点前后的所谓无效的0,即要显示为0.2340.

另外,Format([字段],"#0.0000") 要怎样写进下面这段交叉表查询的SQL语句里,用来控制Nz(Sum([需求表].[需求数量]),0) 的小数位数

TRANSFORM Nz(Sum([需求表].[需求数量]),0) AS 需求数量

SELECT 分场表.分场ID, 分场表.分场名称, Sum(需求表.[需求数量]) AS [总计 需求数量]

FROM 分场表 INNER JOIN (商品 INNER JOIN 需求表 ON .ID = 需求表.ID) ON 分场表.分场ID = 需求表.分场ID

WHERE (((分场表.分场名称) Like "*天府*"))

GROUP BY 分场表.分场ID, 分场表.分场名称

ORDER BY 分场表.分场ID

PIVOT 商品.商品名称;

我想需要说明一下:商品的需求数量是整数,不需要控制小数位数,但我这个商品配送系统其实是一个影子程序,其中的商品是替代另一种其数量需保留4位小数的物品的。




朱先生 发表于:2016-04-19 16:21:39

format(Nz(Sum([需求表].[需求数量]),0),"#0.0000")

or   

format(Sum([需求表].[需求数量]),"#0.0000")

试试



清风徐来 发表于:2016-04-22 17:14:47
朱先生好!抱歉没用上您最后给的代码,因为我发现这个小数格式和位数问题是NZ函数造成的,于是在前边的操作中先用NZ转换了NULL,然后追加到设定了小数格式的表中,删除了这个交叉表查询中的NZ,运行时就不存在小数格式和位数问题了。高兴地告诉您:承蒙您的热心帮助,到今天,我已圆满完成了单位业务数据管理系统(如前所说,是“商品库存及配送管理系统”这个影子程序背后的真身的开发任务,整个过程历时三四个月,自己的摸索和您的帮助使我攻克了重重难关,也从中学到不少ACCESS、SQL和VBA编程的知识和技巧,非常乐意在此与您分享我的成就感和愉悦心情!再次对您的倾力相助深表谢忱!祝您万事胜意!

朱先生 发表于:2016-04-22 23:58:19
 恭喜

总记录:7篇  页次:1/1 9 1 :