如何对SQL子查询执行CAST/ROUND处理,使其结果格式一致?
解决子查询结果保留两位小数的问题
直接将每个子查询的结果嵌套进你第一行使用的 CAST(ROUND(...,2) AS NUMERIC(36,2)) 结构里即可,修改后的代码如下:
CAST(ROUND(T9.[Price],2)AS NUMERIC(36,2)) 'Sell_Price', CAST(ROUND( (SELECT T9.[Price] FROM ITM1 T9 WHERE T9.[PriceList] = '1' and T9.ItemCode = T0.ItemCode ), 2) AS NUMERIC(36,2)) 'Trade', CAST(ROUND( (SELECT T9.[Price] FROM ITM1 T9 WHERE T9.[PriceList] = '8' and T9.ItemCode = T0.ItemCode ), 2) AS NUMERIC(36,2)) 'RRP',
操作逻辑和你处理Sell_Price完全一致:把原本单独返回Price的子查询作为ROUND函数的输入值,先对结果四舍五入保留两位小数,再通过CAST转换为NUMERIC(36,2)类型,就能让Trade和RRP的格式与Sell_Price统一。
内容的提问来源于stack exchange,提问作者user3232977
相关产品推荐
相关产品推荐

