Sql server 视图,按总和截断小数分组
我的看法如下:Sql server 视图,按总和截断小数分组,sql-server,view,Sql Server,View,我的看法如下: 选择dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.OrderPeriod,dbo.HPDict\u PlantGeocodes.costcenter作为客户,dbo.HPDict\u PlantGeocodes.PlantCity,SUM(dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.truckeequivalent) 作为数量 来自dbo.qry\U NW\U Ph1\U GFAnalysi
选择dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.OrderPeriod,dbo.HPDict\u PlantGeocodes.costcenter作为客户,dbo.HPDict\u PlantGeocodes.PlantCity,SUM(dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.truckeequivalent)
作为数量
来自dbo.qry\U NW\U Ph1\U GFAnalysis\U Base\U PtA内部连接
dbo.HPDict\u植物地理编码在dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.Plant\u 10=dbo.HPDict\u植物地理编码.PlantCode
按dbo.qry\u NW\u Ph1\u GFAnalysis\u Base\u PtA.OrderPeriod、dbo.HPDict\u PlantGeocodes.costcenter、dbo.HPDict\u PlantGeocodes.PlantCity分组*
问题在于:
- Quantity返回一个整数
- 但truckeequivalent是一个十进制数
如何获取返回小数点的数量?谢谢 请注意,表别名对于可读代码是必不可少的。总和可以转换为十进制类型
SELECT n.OrderPeriod,
h.CostCentre AS Customer,
h.PlantCity,
cast(sum(n.TruckEquivalent) as decimal(16, 2)) AS Quantity
FROM dbo.qry_NW_Ph1_GFAnalysis_Base_PtA n
inner join dbo.HPDict_PlantGeocodes h ON n.Plant_10 = h.PlantCode
GROUP BY n.OrderPeriod,
h.CostCentre,
h.PlantCity;
仅供参考,列的3部分命名是并且应该避免。给你的对象加上别名,并用它们来限定你的列名。如果你想要一个十进制值,那么
CAST
/CONVERT
<但是,code>SUM不会更改列的数据类型,因此这意味着您的列truckeequivalent
必须是int
。