sql - 根据条件计算

标签 sql sql-server sql-server-2008

我需要一个关于sql server利息计算的建议。下面是x先生一月的账户交易明细

期初余额:100

 DATE     Deposit  W/d  BALANCE
1         10000          10100
2                        10100
3                        10100
4                        10100
5         40000          50100
6                        50100
7                        50100
8                        50100
9                 45000   5100

以下是X先生1月份的余额明细

开局巴尔 = 100

7 月 1 日 = 卢比。 10,100

7 月 5 日= 50,100 卢比

7 月 9 日= 5000 卢比(在他提取 45,000 卢比之后)

现在我需要在月底将以下信息插入到某个表中

FromDate    Todate  Noofdays    Balance
01.01.2017  04.01.2017  4        10100
05.01.2017  08.01.2017  4        50100
09.01.2017  31.01.2017  23        5000

请任何人帮我获取 sql server 中的天数和余额详细信息

最佳答案

考虑到您的 Date 列存储在 DATE 类型

这是一种方法

WITH data
     AS (SELECT *,
                Row_number()OVER(ORDER BY date) - 
                Row_number()OVER(partition BY BALANCE ORDER BY date) AS grp
         FROM   yourtable)
SELECT Min(date),
       Max(date),
       Datediff(dd, Min(date), Max(date)) + 1,
       BALANCE
FROM   data
GROUP  BY grp,
          BALANCE 

关于sql - 根据条件计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41668589/

相关文章:

sql-server - SQL Server 2016 始终加密证书停止工作,超时错误

sql - 在数据库中留下约束错误有什么危险?

php - 使用 php 和 mysqli 有多少行包含特定值

sql - 使用 SQL Server 查找某个项目在给定期间搜索算法中是否可预订

php - MySQL GROUP BY 多个列和字段

sql-server - 在 sql server 中使用动态模式名​​称时编写存储过程

sql - 从 INSTEAD OF TRIGGER 获取 ROWCOUNT

sql - 如何优化同一张表中的几个 "WHERE (Select .... ) = value"

sql - postgres string_agg 和 GROUP BY 子句

c# - 如何将外部列表集成到原始 sql 查询连接作为 linq 原始 sql 查询中的表