首页 > 其他分享 >明细表数据计算结余数

明细表数据计算结余数

时间:2022-11-11 15:33:23浏览次数:42  
标签:结余 qt 00 zcMoney detail t1 计算 date 明细表

参考:https://www.cnblogs.com/lairui1232000/p/8964949.html

/*
detail表 记帐流水表
==========
字段:
qt_srMoney   (money) 收入
qt_zcMoney  (money) 支出
qt_date         (datetime) 操作日期
qt_dkfs         (nvarchar)  打款方式
------------------
需获取一个带结余的数据信息
==========
根据期初表中的日期和金额,查询出记帐表中的结余。
帐面结余 =期初金额+收入-支出
实验环境:sql server 2008 R2
*/ 
create table detail(qt_srMoney   money,
qt_zcMoney  money,
qt_date         datetime,
qt_dkfs         nvarchar(100))
insert into detail values(100,0,'2018-1-2 10:00:00','other')
insert into detail values(0,10,'2018-2-2 10:00:00','other')
insert into detail values(0,20,'2018-3-2 10:00:00','other')
insert into detail values(30,0,'2018-4-2 10:00:00','other')
insert into detail values(10,60,'2018-5-2 10:00:00','other')
INSERT INTO detail VALUES (32., 0., '2018-04-03', 'other');
INSERT INTO detail VALUES (6., 0., '2018-04-03', 'other');
INSERT INTO detail VALUES (0., 8., '2018-04-03', 'other');

go 
 
 
 select * from detail




-- 方法一
SELECT
    t1.keyId,
    t1.qt_date,
    t1.qt_dkfs,
    t1.qt_srMoney,
    t1.qt_zcMoney,
    SUM ( t2.qt_srMoney- t2.qt_zcMoney ) AS amt 
FROM
    ( SELECT qt_srMoney, qt_zcMoney, qt_date, qt_dkfs, row_number ( ) OVER ( ORDER BY qt_date ) AS keyID FROM detail ) t1,
    ( SELECT qt_srMoney, qt_zcMoney, qt_date, qt_dkfs, row_number ( ) OVER ( ORDER BY qt_date ) AS keyID FROM detail ) t2 
WHERE
    t1.keyId>= t2.keyId 
GROUP BY
    t1.qt_date,
    t1.qt_dkfs,
    t1.qt_srMoney,
    t1.qt_zcMoney,
    t1.keyId 
ORDER BY
    t1.keyId;


-- 方法二
SELECT
    *,
    (
    SELECT
        isnull( SUM ( ta.qt_srMoney - ta.qt_zcMoney ), 0 ) 
    FROM
        detail AS ta 
    WHERE
        ( ta.qt_date< T.qt_date OR ( ta.qt_date= T.qt_date AND ta.id< T.id ) ) 
    ) + T.qt_srMoney - T.qt_zcMoney AS Total 
FROM
    detail AS T 
ORDER BY
    qt_date ASC

 

标签:结余,qt,00,zcMoney,detail,t1,计算,date,明细表
From: https://www.cnblogs.com/zeng-qh/p/16880610.html

相关文章

  • 关于navicat中使用datediff无法实现日期计算的解决方案与拓展
    话不多说直接上图在我想要计算时间差值时发现网上找的这个datediff函数在navicat里并不好使,经过查阅各种资料得出一些结论。1.如何正确使用datediff函数通过例子发现......
  • 含税价不含税价和税金的计算方法
    假设:税率为13%​不含税价=含税价/1.13税金=不含税价*0.13测算:含税价=不含税价+税金假设:税率为3%不含税价=含税价/1.03税金=不含税价*0.03测算:含税价=不含税价+税......
  • 论如何学习计算机
    上网查,多上手尝试                                               ......
  • 计算机结构--week5
    内存特征:  计算机中的内存: Capacity:Thecapacityofthememoryisthenumberofbytes(orpreferablywords)itcanstore. Thewordsize(orlength)......
  • 计算器之策略
    设计模式是面向对象的具体表现和实践。或许哪天感觉面向对象理解差不多了,嘴里也不用记挂着设计模式这个玩意儿,我只能通过反复学习设计模式以加深理解面向对象。下面复习策......
  • 基于微信小程序的移动端物流系统设计与实现-计算机毕业设计源码+LW文档
    摘要随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网上管理,它将是直接管理移动端物流系统app的最新形式。本......
  • 计算机网络体系结构
    计算机网络体系结构计算机网络概述概念所谓计算机网络就是一些互联的、自洽的计算机系统的集合能够实现远程信息处理甚至资源共享的系统以能够相互共享资源的方式互......
  • 基于微信小程序的掌上党支部——党员app设计与实现-计算机毕业设计源码+LW文档
    摘要随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各......
  • 同城交易小程序设计与实现-计算机毕业设计源码+LW文档
    小程序开发说明开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9......
  • 计算高可用多级缓存架构
    缓存原理与设计框架缓存(cache)介于速度相差较大的两个硬件之间,调解速度传输差异--空间换时间3W1h内容有效期缓存方......