SQL Server中如何对计算列DIF进行求和?
实现DIF列的求和操作
根据你的需求,提供三种常见的实现方式:
1. 直接计算总和(仅返回总和值)
直接用SUM()函数包裹DIF的计算公式,一步得到符合条件的所有行的DIF总和:
SELECT SUM(IntCantInv - SalCantInv) AS Total_DIF FROM TABLA_MOVIMIENTO_INVENTARIOS WHERE ProductInv = 10001001008
2. 保留行数据同时显示总和
如果需要保留原有列和DIF列,同时在每行展示所有行的DIF总和,可以使用窗口函数:
SELECT ProductInv, IntCantInv, SalCantInv, (IntCantInv - SalCantInv) AS DIF, SUM(IntCantInv - SalCantInv) OVER() AS Total_DIF FROM TABLA_MOVIMIENTO_INVENTARIOS WHERE ProductInv = 10001001008
3. 通过CTE先计算DIF再求和
如果需要拆分逻辑,先单独生成DIF列再求和,可使用公共表表达式(CTE):
WITH InventarioDIF AS ( SELECT (IntCantInv - SalCantInv) AS DIF FROM TABLA_MOVIMIENTO_INVENTARIOS WHERE ProductInv = 10001001008 ) SELECT SUM(DIF) AS Total_DIF FROM InventarioDIF;
内容的提问来源于stack exchange,提问作者Bladimir Silva Toro
相关产品推荐
相关产品推荐

