mySQL收支设置几个表

mySQL收支设置几个表,第1张

一个。

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。

对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品,是最流行的关系型数据库管理系统之一。

一般来说是一对多,一个用户 对应 多条收支记录。

设计简单:

把用户信息做一个表,userid做主关键字,

收入支出做一个表,userid做外关键字。

为了方便程序设计,当然可以不做实际关联。

怎么改题目了?搞的我还把开始的要求给算出来了,如下:

select

a.月份,

a.本月收入总额,

case when b.本月收入总额=0 or b.本月收入总额 IS null then null else

(a.本月收入总额-b.本月收入总额)/b.本月收入总额*100 end 收入增长百分比,

a.本月支出总额,

case when b.本月支出总额=0 or b.本月支出总额 IS null then null else

(a.本月支出总额-b.本月支出总额)/b.本月支出总额*100 end 支出增长百分比,

a.本月余额,

case when b.本月余额<=0 or b.本月余额 IS null then null else

(a.本月余额-b.本月余额)/b.本月余额*100 end 余额增长百分比

from

(

select

MONTH(日期) 月份,

isnull(SUM(收入金额),0) 本月收入总额,

isnull(SUM(支出金额),0) 本月支出总额,

isnull(SUM(收入金额),0)-isnull(SUM(支出金额),0) 本月余额

from 收支表

group by MONTH(日期)

) a

left join

(

select

MONTH(日期) 月份,

isnull(SUM(收入金额),0) 本月收入总额,

isnull(SUM(支出金额),0) 本月支出总额,

isnull(SUM(收入金额),0)-isnull(SUM(支出金额),0) 本月余额

from 收支表

group by MONTH(日期)

) b

on a.月份=b.月份+1

order by a.月份 desc

搞到最后才发现你是ACCESS数据库,晕死,那以上SQL Server 代码可能有些地方要修改

比如:case when then else end语句,不知ACCESS是否支持

left join可能要改成left outer join

isnull()函数,不知access是否支持

month()函数,不知access是否支持

用ACCESS完成这么复杂的运算,的确困难.

补充,用case主要是用来排除0和空值,比如,你6月份的收入为0,7月份的收入3500,那么收入增长百分比就是3500/0,结果是无穷大,你在ACCESS中怎么排除这种情况?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8421582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存