Sql server 如何减去金额

Sql server 如何减去金额,sql-server,Sql Server,我试图在sql server中进行查询,但未生成结果 我的查询、表格和预期结果 USE [bank] GO /****** Object: StoredProcedure [dbo].[Pr_Rpt_BankPlaning] ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PRODCEDURE [dbo].[Pr_Rpt_BankPlaning] AS BEGIN ; WITH cte AS

我试图在sql server中进行查询,但未生成结果

我的查询、表格和预期结果

USE [bank] 
GO 

/****** Object: StoredProcedure [dbo].[Pr_Rpt_BankPlaning] ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

ALTER PRODCEDURE [dbo].[Pr_Rpt_BankPlaning] AS 
BEGIN ;
  WITH cte AS
    ( 
      SELECT 
          TotalAmount, 
          BankAmount,
          (TotalAmount-BankAmount) AS minusamount, 
          rownum = ROW_NUMBER() OVER (order BY BankAmount) 
      FROM Bank AS bc 
    ) 

  SELECT
    CASE
        WHEN cte.TotalAmount = prev.TotalAmount THEN prev.minusamount 
        ELSE cte.TotalAmount 
    END AS TotalAmount1, 
    cte.BankAmount,
    CASE 
        WHEN cte.TotalAmount = prev.TotalAmount THEN prev.minusamount 
        ELSE cte.TotalAmount 
    END
    -cte.BankAmount AS Amount,
    cte.minusamount,
    cte.rownum 
    FROM CTE 
    LEFT JOIN CTE prev ON prev.rownum = CTE.rownum - 1 
    LEFT JOIN CTE nex ON nex.rownum = CTE.rownum + 1 
END
这个查询给出了这个结果

但我希望这种类型的结果结转,减去下一个总额中的金额

虽然您还没有按照其他人的要求提供任何样本数据,但我还是使用了第一个屏幕截图中显示的输出作为样本数据来提供所需的输出。您需要在查询中集成我的CTE以获得输出

下面的查询为您提供了所需的输出

DECLARE @AMOUNT_DATA TABLE(TA INT, BA INT,AM INT,MAMT INT,ROWNUM INT )
INSERT INTO @AMOUNT_DATA VALUES
(458800,25000,433800,433800,1),
(433800,25000,408800,433800,2),
(433800,100000,333800,358800,3)

;WITH AMOUNT_DATA
AS
(
    SELECT ROWNUM,TA,BA,TA-BA RESULT FROM @AMOUNT_DATA WHERE ROWNUM=1
    UNION ALL
    SELECT T2.ROWNUM,T1.RESULT TA,T2.BA,T1.RESULT-T2.BA FROM AMOUNT_DATA T1 
    JOIN @AMOUNT_DATA T2 ON T1.ROWNUM=T2.ROWNUM-1
)
    SELECT * FROM AMOUNT_DATA
输出

------------------------------
--ROWNUM    TA  BA  RESULT
------------------------------
1   458800  25000   433800
2   433800  25000   408800
3   408800  100000  308800
------------------------------

看到用笔和纸的理想效果(截图也很好)是很有趣的…任何人都能回答这个问题吗?你能发布银行的内容(从最初的CTE开始)吗。所有行,或至少前3行。如果您可以编辑您的问题,将示例数据包括为ddl+dml,这将有助于其他人回答问题。