首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何设计财务系统中的 销账表 [已结贴,结贴人:tianhuo_soft]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-23 11:59:44 楼主
    SQL code
    create table t(现有金额 int,本次存入 int,flag char(1)) insert t select 10000,10000,'1' declare @i int set @i=select 现有金额 from t where flag=1 --找到当前的记录 update t set flag ='0' where flag=1 --把上一次的当前清掉,为下一次做准备 insert t select @i+2000,2000,'1' -- 插入新记录 这是我目前制作的销账算法 我感觉不太好 大家有什么好办法 谢谢
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 12:20:311楼 得分:0
    不知道啥意思
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • comszsoft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 12:21:082楼 得分:0
    没做过,帮up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zjcxc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      2

    发表于:2008-08-23 12:29:153楼 得分:0
    描述你的业务逻辑(最好用数据说明)和处理需求
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CodeShow
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:08:454楼 得分:0
    同样是没做过,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:20:125楼 得分:0
    财务销账大家都听说过把

    本次存入12500元,当前有12500元
    下次在存入2000元,当前有14500元
    再次取出-1000,当前有13500元


    其实很简单,我已经弄出来,用flag来标志当前的最新记录(没有使用max(id)的方法)

    但是对财务不了解,所以想问问大家是怎么实现的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:49:026楼 得分:0
    每次插入还得扫描表两次,还不如另建一表存入当前数
    另外就算这样也可以用一次扫描替换两次扫描
    declare @i int
    --select @i=现有金额  from t where flag=1 --找到当前的记录---不要了

    update t set flag ='0',@i=现有金额 where flag=1 --把上一次的当前清掉,为下一次做准备

    insert t select @i+2000,2000,'1'  -- 插入新记录
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ChinaJiaBing
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:03:247楼 得分:0
    oooooooooo
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:06:098楼 得分:0
    引用 6 楼 wgzaaa 的回复:
    每次插入还得扫描表两次,还不如另建一表存入当前数
    另外就算这样也可以用一次扫描替换两次扫描
    declare @i int
    --select @i=现有金额  from t where flag=1 --找到当前的记录---不要了

    update t set flag ='0',@i=现有金额 where flag=1 --把上一次的当前清掉,为下一次做准备

    insert t select @i+2000,2000,'1'  -- 插入新记录


    谁给@i赋值啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:07:599楼 得分:0
    插入触发啊,inserted表中,另一表中的数加上inserted  中的数据
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:11:1510楼 得分:0
    或者直接将来的数插入一个表,并且更新另一个表,不用变量@i

    如果是6楼的“@i=现有金额”已经赋值了啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kelph
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:36:3311楼 得分:0

    要谈的上业务,最简单也得这样吧

    账表
    账号,账号内金额,账户状态,开户时间,账户拥有人。。。

    收支表
    唯一主键,账号,收支金额,收支日期,人。。。

    根据每次收支更改账号内金额
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:49:1612楼 得分:0
    我明白你们的意思

    类似于 用友的凭证管理

    可是我不知道在数据库角度他是如何实现的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • marco08
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-08-23 14:56:5813楼 得分:0
    要对应到明细吗, 个人认为用两张表比较好
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lsd123
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 15:00:4214楼 得分:0
    。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 10:11:0815楼 得分:0
    引用 14 楼 lsd123 的回复:
    。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 10:35:4716楼 得分:50
    怎么也是分表,分表的好处是显而易见的,
    一张表存明细(只管插入(不用描扫表),只有个人查询时才派上用场<建个索引应该还是蛮快的>),
    另一张表存入现有金额(在存入或取出第一张表时同时更新<这种扫描总要小得多吧>或插入记录第二张表,为确保两表数据一致,可以放在事务中)象11楼说得把现有金额放在个人信息表中,这样也不用单独建表。
    数据量小时怎么都好说,数据量大了什么问题都出来了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ranzj
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 10:38:0617楼 得分:50

    你娃看样子是个新手,

    需两张表,
    (1)交易记录表(注:方向为Dr/Cr,借/贷,收/支)如下:

    其他字段....  业务发生时间              方向    币种    金额
    ......      2008-08-01 10:39:45  Dr.    CNY    5000.00
    ......      2008-08-02 14:00:23  Dr.    CNY    4200.00
    ......      2008-08-05 09:25:01  Cr.    CNY    3299.78
    ......      2008-08-05 09:25:01  Cr.    CNY    1000.00
    ......      2008-08-06 14:00:23  Dr.    CNY    2000.00
    ......      2008-08-08 09:25:01  Cr.    CNY    4570.22

    (2)余额表(注:方向为借/贷/平)如下:
    其他字段....  会计年度  月份    摘要      方向    金额

    或:

    其他字段....  会计年度  年初余额  1月借 1月贷  2月借 2月贷  .....  12月借 12月贷

    ------------------------------------------------------------------------------------

    查询时,期末余额=期初余额+本期借方发生额-本期贷方发生额,需动态计算哟。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 11:45:5718楼 得分:0
      对对 我现在就是不太明白
    借/贷/平 的关系

    你能给我讲讲吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ranzj
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 13:27:2719楼 得分:0
    引用 18 楼 tianhuo_soft 的回复:
      对对 我现在就是不太明白
    借/贷/平 的关系

    你能给我讲讲吗?



    (1)对于资产部类,
    期末余额=期初余额+本期借方发生额-本期贷方发生额,如果:如为零,则平;如为正,则借;如为负,则贷。

    (2)对于负债部类,
    期末余额=期初余额+本期贷方发生额-本期借方发生额,如果:如为零,则平;如为正,则贷;如为负,则借。


    交易时(会计恒等式):有借必有贷,借贷必相等。
    统计计算时:余额=余额,借/贷方发生额=借/贷方发生额,总结科目=直接下级科目之和。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ranzj
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 13:28:3820楼 得分:0
    勘误:总账科目
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • JYR520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 14:35:3721楼 得分:0
    学习中,支持
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tianhuo_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 22:22:2822楼 得分:0
    自己顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Herb2
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 09:57:1323楼 得分:0
    你这样是将余额表和流水表混在一起了,应该分开
    一个表专门用于记录余额,另一个表用于记录流水。
    参加你的另一个帖子。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • whj200551
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 11:23:1724楼 得分:0

      饿·~·
      飘过!!~·
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved