首页 > 解决方案 > 查询 SQL Server 的求和结果

问题描述

我需要添加另一个查询的结果,但我不能

图中是第一个查询的结果。现在我需要添加这个结果并按日期分组

图片中的示例

示例:200 + 200 + 199 + 199 + 199 + 200 .... = 结果

我的代码:

 SELECT SUM (
(SELECT 
    [DATA],
    IIF((
            Icas.CONTADOR_ICAS_1 - COALESCE(LAG(Icas.CONTADOR_ICAS_1) OVER (ORDER BY Icas.COD_ICAS), 0)) > 0 
            AND (Icas.CONTADOR_ICAS_1 - COALESCE(LAG(Icas.CONTADOR_ICAS_1) OVER ( ORDER BY Icas.COD_ICAS),0)) < 500, 
            (Icas.CONTADOR_ICAS_1 - COALESCE(LAG(Icas.CONTADOR_ICAS_1) OVER (ORDER BY Icas.COD_ICAS), 0)), 0) AS DifL1
    FROM VW_ICAS Icas )) AS Res
FROM
    VW_ICAS
GROUP BY
    [DATA]

我的查询结果

标签: sqlsql-server

解决方案


我想这个查询提供了您在图像中提供的数据:

SELECT [DATA], IIF(...) AS DifL1
FROM VW_ICAS Icas

DifL1为了清楚起见,我截断了表达式。)

你想用这些数据做到这一点:

SELECT [DATA], SUM(DifL1)
FROM [the result above]
GROUP BY [DATA]

您可以将第一个查询作为表表达式放入第二个查询:

SELECT [DATA], SUM(DifL1)
FROM (SELECT [DATA], IIF(...) AS DifL1
      FROM VW_ICAS Icas) AS X
GROUP BY [DATA]

我猜这应该可行。

这是@LuisCazares 答案的第二个查询的变体,但在字段 [DATA] 上进行了分组。


推荐阅读