我现在在做统计每个月的消费额:要用到的字段
我现在在做统计每个月的消费额:要用到的字段 :
部门、卡号、姓名、上月余额、本月充值额、本月取款额、本月余额、本月退卡退还金额、退卡状态。
我现在表在有的数据是:
表1:卡的消费表:有字段:卡号、消费时间、每次消费额、每次消费后的余额
表2:每月卡的余额表:有字段:年月、卡号、姓名、本月余额
表3:所有的卡号表(退卡的、和失卡):姓名、卡号、部门、
表4:在用的卡号表:姓名、卡号、部门
表5:退卡的卡号表:姓名、卡号、部门 、退卡时间 、退给金额
表6: 卡的充值和取款表:卡号,交易日期、交易额、交易类型(有取款 和充值)
请问我要如何来统计我的月末数据:
我的思路是:
将“所有的卡号表”的卡号全部拿来:分两种去再去查询
1 是退卡
卡的消费表去计算:查询本月的消费额。
卡每月的余额表:查旬当月和上月的余额
卡的充值表: 本月充值总额,本月的取款额
退卡表:查询退卡的金额。
2 在用卡
卡的消费表去计算:查询本月的消费额。
卡每月的余额表:查旬当月和上月的余额
卡的充值表: 本月充值总额,本月的取款额
可是这样做出来的计算机去统计的时候速度 好慢哟。
听说用一个复杂的SQL语句会比较快。能不能提供相关的资料。
问题点数:20、回复次数:5Top
1 楼fxs(雪山)回复于 2003-12-01 11:38:44 得分 0
联机查询。Top
2 楼Vcar(阿猫)回复于 2003-12-01 12:18:59 得分 20
where多表查询或者用joinTop
3 楼TalentLi(▁▂▃▄▅ 天才的我 ▆▅▄▃▂▁)回复于 2003-12-01 12:35:20 得分 0
嘿嘿~~老板发了钱是给我们还是给你,~~问题可以解决但是………嘿嘿Top
4 楼fxs(雪山)回复于 2003-12-01 15:11:04 得分 0
我可以以了。发给你看一下。
Sstr = " SELECT"
Sstr = Sstr & " cdepartmen AS [部门],"
Sstr = Sstr & " cname AS [姓名],"
Sstr = Sstr & " ccalnum AS [卡号],"
Sstr = Sstr & " [上月余额] =(SELECT mmoney FROM calhavemoneyh WHERE calhavemoneyh.ccalnum=calcontents.ccalnum and datediff (month , dymonth ,'" & DTym.Value & " ') = 1) ,"
Sstr = Sstr & " [本月充值额]=(SELECT SUM(minsert) FROM sendmoneytocal WHERE ccalcum =calcontents.ccalnum and datediff (month , dsenddate ,'" & DTym.Value & " ') = 0 and (csort ='充值') ),"
Sstr = Sstr & " [本月取款额]=(SELECT SUM(minsert) FROM sendmoneytocal WHERE ccalcum =calcontents.ccalnum and datediff (month , dsenddate ,'" & DTym.Value & " ') = 0 and (csort ='取款') ),"
Sstr = Sstr & " [本月管理费]=(SELECT SUM(mmanagemoney) FROM sendmoneytocal WHERE ccalcum =calcontents.ccalnum and datediff (month , dsenddate ,'" & DTym.Value & " ') = 0 ),"
Sstr = Sstr & " [本月消费额]=(SELECT SUM(mspend) FROM calspend WHERE ccalnum =calcontents.ccalnum and datediff (month , dspenddate ,'" & DTym.Value & " ') = 0),"
Sstr = Sstr & " [本月余额] =(SELECT mmoney FROM calhavemoneyh WHERE calhavemoneyh.ccalnum=calcontents.ccalnum and datediff (month , dymonth ,'" & DTym.Value & " ') = 0) ,"
Sstr = Sstr & " [退还金额余额]=0,"
Sstr = Sstr & " [退卡状态]= 1"
Top
5 楼fxs(雪山)回复于 2003-12-01 15:12:37 得分 0
对了,我要说的事,我现在是在学的做,没有工资的Top




