Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 视图,按总和截断小数分组_Sql Server_View - Fatal编程技术网

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