支出表和收入表生成收支流水表的问题

lshfong 2015-12-29 11:29:02
收入表a
id harvest
1 300
2 500

支出表b
id pay
1 -100
2 -150

希望生成的流水表c

发生金额 余额 收支
300 300 harvest
-100 200 pay
-150 50 pay
500 550 harvest

=====================================

求高人指点一下
...全文
514 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lshfong 2015-12-29
  • 打赏
  • 举报
回复
没人了吗!!
qq_17367431 2015-12-29
  • 打赏
  • 举报
回复
如果有时间字段的话 结合三楼的方法就可以实现 楼主试试 select harvest as 发生金额,(select sum(harvest) from 收入表a where date<=x.date)+(select sum(pay) from 收入表b where date<=x.date) as 余额, 'harvest' as 收支,date from 收入表a x union all select pay as 发生金额,(select sum(harvest) from 收入表a where date<=y.date)+(select sum(pay) from 收入表b where date<=y.date) as 余额, 'pay' as 收支,date from 收入表b y order by date;
lshfong 2015-12-29
  • 打赏
  • 举报
回复
有日期字段的
LongRui888 2015-12-29
  • 打赏
  • 举报
回复
你的这个表有 具体的日期不,如果有日期,就比较容易了,按照收支的具体时间,就能处理
ACMAIN_CHM 2015-12-29
  • 打赏
  • 举报
回复
select harvest ,(select sum(harvest) from 收入表a where id<=x.id)+(select sum(pay) from 支出表b where id<x.id), 'harvest' as sz from 收入表a x union all select pay, (select sum(harvest) from 收入表a where id<=x.id)+(select sum(pay) from 支出表b where id<=x.id), 'pay' as sz from 收入表a y order by id
文修 2015-12-29
  • 打赏
  • 举报
回复
楼主你好 收入表和插入表已经有的数据要合并成收支表: 需要将两个表先简单合并,按照时间排序, 我写了两个触发器,能够在收入表和插入表新插入数据时自动合并到c里面
DELIMITER $
create trigger tri_aInsert after insert    --收入表触发器
on a for each row
begin
declare sum int;
if not exists(select 余额 from c where time=(select max(time) from c))  ---如果收支表为空则插入数据
   insert into c(发生金额,余额,收支,time) values(new.harvest,new.harvest,'harvest',time) 

set sum = (select 余额 from c where time=(select max(time) from c))---获得c表的最新记录的余额
insert into c(发生金额,余额,收支,time) values(new.harvest,sum+new.harvest,'harvest',time)
end$
DELIMITER ;
DELIMITER $
create trigger tri_bInsert after insert    --支出表触发器
on b for each row
begin
declare sum int;
if not exists(select 余额 from c where time=(select max(time) from c))
   insert into c(发生金额,余额,收支,time) values(new.pay,new.pay,'pay',time) 
set sum = (select 余额 from c where time=(select max(time) from c));---获得c表的最新记录的余额
insert into c(发生金额,余额,收支,time) values(new.pay,sum+new.pay,'pay',time)
end$
DELIMITER ;
源码直接下载地址: https://pan.quark.cn/s/b2e30c4b4277 依据所提供的文件资料,可以总结出以下核心内容: 1. 华硕玩家国度x79 R4G主板属于高端级别的主板,归类于华硕玩家国度系列中的RAMPAGE IV GENE型号。该主板主要面向高端用户及游戏爱好者,具有卓越性能的特点。 2. 华硕玩家国度x79 R4G主板的使用指南采用简体中文版本,并以PDF格式发布。用户手册全面地阐述了该主板的操作方法和各项功能。 3. 版权声明明确指出,本手册包含的所有内容均受到著作权法的保护。未经华硕电脑股份有限公司(简称“华硕”)的许可,禁止进行任何形式的复制、剽窃、翻译或分发。 4. 免责声明具体说明,华硕提供的用户手册依照其发布时的状态呈现,不提供任何明示或暗示的保证。用户使用手册所面临的风险需自行承担,且华硕不对使用手册后的任何结果或信息的精确性或可靠性提供保证。 5. 用户手册中强调,使用本手册后可能引发的风险和损失,涵盖但不限于利益损失、业务中断、数据遗失或其他经济上的损失,华硕及其授权人员、雇员等均不承担相应责任。 6. 华硕拥有随时更新用户手册的权力。当产品规格或驱动程序发生变化时,用户手册将进行相应的修订。用户可以通过华硕的客户服务网站或直接联络华硕电脑客户关怀中心以获取最新版本的信息。 7. 第三方产品名称或内容的所有权和知识产权归属于各自的所有者,并受到相关法律法规的保护。 8. 在华硕的保修政策中,若产品经历过未经华硕授权的维修、规格调整、部件更换或其他未授权操作,或者产品序列号模糊不清或遗失,产品将不再享受华硕的保修和服务。 9. 华硕供应的主板及显卡产品在中国大陆地区(不包括港澳台地区)实施三年免费保修服务及全国联保服务...
内容概要:本文围绕2026年高教社杯全国大学生数学建模竞赛B题“无线电干扰源的快速自动定位与清除”提供了一套完整的数学建模、算法实现与论文撰写的免费资源。该资源由“荔枝科研社”出品,依托一个涵盖智能优化算法、机器学习、深度学习、信号处理、通信技术、电力系统管理等多个前沿领域的综合性科研资源共享平台。文档以MATLAB和Python为主要工具,聚焦于复杂工程问题的建模与求解,尤其在干扰源定位、状态估计、路径规划及优化调度等方面具有突出的应用价值。资源不仅包含竞赛题目解析,还提供了大量可复现的代码实例与技术文档,旨在帮助用户深入理解算法原理并提升科研实践能力。; 适合人群:具备一定编程基础,特别是熟练掌握MATLAB或Python语言的本科生、研究生,正在备战数学建模竞赛的学生,以及从事通信、信号处理、电力系统等相关领域研究的科研人员和技术开发者。; 使用场景及目标:①为参赛学生提供B题的完整解题思路、模型构建方法与代码实现路径,加速竞赛准备进程;②为科研工作者提供高质量、可复现的算法代码与技术参考,推动智能算法在无线通信、应急响应、环境监测等实际场景中的应用研究;③促进跨学科技术融合,支持教学、科研与工程实践的协同发展。; 阅读建议:建议读者结合文中提供的网盘链接与《荔枝科研社资源整理目录》系统性地查阅资料,优先选择与自身研究方向契合的技术模块进行深入学习,并动手运行代码以验证算法效果。同时推荐关注微信公众号“荔枝科研社”以获取持续更新的技术内容与社群支持。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧