刚接触SQL语句不久,碰到一个难搞的题,说有一个消费表 Xlist ,记录所有人每天的消费记录,包括(id,money,date)三个字段,即客户编号、消费额、消费日期,还一个库表 Kform ,存放所有人的消费总额,包括(id,totle)两字段.
现要写SQL语句,实现将某一天的消费记录汇总,并更新到Kform表中,问题来了,在xlist表中,对于一个id可能有多条消费记录,即多次消费,那么就要将money求和再加到Kform表中,而且又不能单纯按id字段来逐一取记录,因为可能有的人那天没有消费,而且人数可能很庞大,我听说可以用游标实现逐条记录处理,可是我是新手实在是看不懂,有没有人教教我怎么弄啊
现要写SQL语句,实现将某一天的消费记录汇总,并更新到Kform表中,问题来了,在xlist表中,对于一个id可能有多条消费记录,即多次消费,那么就要将money求和再加到Kform表中,而且又不能单纯按id字段来逐一取记录,因为可能有的人那天没有消费,而且人数可能很庞大,我听说可以用游标实现逐条记录处理,可是我是新手实在是看不懂,有没有人教教我怎么弄啊
1. 对xlist 用group by 汇总,然后逐条对kform 更新;
2. 写个触发器,就是在对xlist 有新纪录插入时就更新kfrom,这样就可以避免逐条处理的麻烦个人比较推荐后者
where id in (select id from Xlist where date = 某天)
SQL都没写明白用什么游标 数据量少用这个足矣。
set e.dable =
(select sum(d.money) money
from study_d d
where d.sid = e.eid
and d.sdate =
to_date('2012-2-11 17:14:49', 'yyyy-MM-dd HH24:mi:ss'))
where e.eid in (select d.sid
from study_d d
where d.sdate =to_date('2012-2-11 17:14:49', 'yyyy-MM-dd HH24:mi:ss'));