如何在代码中添加总行数

时间:2016-10-13 17:54:24

标签: sql sql-server

我有一个来自商店系统软件的代码,并想知道如何添加总行数。我是一名正在进入数据分析的总noob前会计师。我已经学了很多教程并继续学习,但仍然是初学者。据说它是商店系统软件数据库基于SQL 2012.这是我的代码,工作正常,只需要最后一列的总行:

Select  ESTIM.DESCRIP
      , ESTIM.PARTNO
      , ESTIM.PRODCODE
      , ESTIM.QTYONHAND
      , ESTIM.QTYONORDER
      , ESTIM.REORDLEVEL
      , ESTIM.STOCKINGCOST
      , ESTIM.QTYONHAND * ESTIM.STOCKINGCOST As "Total Item Value in Stock"
From    ESTIM
Where   ((ESTIM.PRODCODE Like [ENTER PRODUCT CODE:]))
Order By ESTIM.PARTNO;

1 个答案:

答案 0 :(得分:0)

有几种方法可以完全解决这个问题。

您可以使用UNION查询来获取仅包含总数的新行,并将所有其他字段设为NULL:

 SELECT 'TOTAL', NULL, NULL, NULL, NULL, NULL, NULL, SUM(ESTIM.QTYONHAND * ESTIM.STOCKINGCOST) FROM ESTIM  WHERE ((ESTIM.PRODCODE Like [ENTER PRODUCT CODE:]));

您可以使用包含总数的窗口函数添加新字段(将为每行重复)

Select  ESTIM.DESCRIP
      , ESTIM.PARTNO
      , ESTIM.PRODCODE
      , ESTIM.QTYONHAND
      , ESTIM.QTYONORDER
      , ESTIM.REORDLEVEL
      , ESTIM.STOCKINGCOST
      , ESTIM.QTYONHAND * ESTIM.STOCKINGCOST As "Total Item Value in Stock"
      SUM(ESTIM.QTYONHAND * ESTIM.STOCKINGCOST) OVER (PARTITION BY 1) as "Total of Total Item Value"
From    ESTIM
Where   ((ESTIM.PRODCODE Like [ENTER PRODUCT CODE:]))
Order By ESTIM.PARTNO;

你也可能......可能......用GROUP BY <fields> WITH ROLLUP变得狡猾,但我认为这会为你想要的输出添加更多记录。