我有这个代码,我有一个商店系统软件,想知道我如何才能添加总行。我完全是个菜鸟,以前是会计,现在正在过渡到数据分析领域。我已经学了很多教程,而且还在继续学习,但我还是个初学者。假设它是基于SQL2012的商店系统软件数据库。这是我的代码,运行良好,只需要最后一列的总行:
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;
发布于 2016-10-14 02:02:00
有几种方法可以从这个查询中获得总体结果。
您可以使用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
,但我认为这会向输出中添加比您期望的更多的记录。
https://stackoverflow.com/questions/40027812
复制相似问题