日期:2014-05-17  浏览次数:20823 次

高分悬赏
财务报表:

序号 用户名 姓名 续费(元) 赠送(元) 保证金(元) 注册费(元) IP地址费(元) 使用费(元)

0 wsz xiaobai 60 10 0 0 50 20

1 bbb zhangs 50 0 0 0 30 100


表A以下字段:

user(登录名) 
name(姓名)

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

表B有以下3个字段:

type:(分5个类型:续费、赠送、保证金、注册费、IP地址费 ,根据不同的情况type的值就不同)

savingnum(续费)

user(登录名)

time

----------------------------
表C有以下字段:


user(登录名)

charge1(使用费)

time

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

表D有以下字段:


user(登录名)

charge2(使用费)
time

关联:这四个表的user是相等的,而且在各表中是唯一存在的。
注意:是报表,查出的值,都是某范围内的某字段的‘和’
每条记录中的使用费,如果在D表中值非空,那么就在C表中为0;如果在C表中值非0,那就不存在D表中。

问题:

1 查询:在某条件时间($star_time<=time<=$end_time)内,找出某一范围的续费($star_savingnum<=savingnum<=$end_savingnum)

2 查询:在某条件时间($star_time<=time<=$end_time)内,找出某一范围的使用费($star_savingnum<=savingnum<=$end_savingnum)






------解决方案--------------------
哪要看你的需求如何?
1 表B type:(分5个类型:续费、赠送、保证金、注册费、IP地址费),类型的结构设置,对统计本身就有影响.

要么取所有用户的某种续费类型做统计,要么取单个用户的所有类型做统计,这个可以通过group by 来实现.

2 C和D表结构基本上是相同的,不知道你所谓的(如果在D表中值非空,那么就在C表中为0;如果在C表中值非0,那就不存在D表中)是何解.
如果某个用户在C表中有值又在D表中有值,哪就人为增加了难度.


------解决方案--------------------
探讨
哪要看你的需求如何?
1 表B type:(分5个类型:续费、赠送、保证金、注册费、IP地址费),类型的结构设置,对统计本身就有影响.

要么取所有用户的某种续费类型做统计,要么取单个用户的所有类型做统计,这个可以通过group by 来实现.

2 C和D表结构基本上是相同的,不知道你所谓的(如果在D表中值非空,那么就在C表中为0;如果在C表中值非0,那就不存在D表中)是何解.
  如果某个用户在C表中有值又在D表中有值,哪就人为增加了难度.



------解决方案--------------------
探讨
某条记录的charge值,在C表中存在(并非0), 就会在D表中不存在。

只要在D表中存在,就不会在C表中存在,(0都没有)