当前位置: 代码迷 >> Oracle管理 >> 初学者求一道ORACLE题。内详
  详细解决方案

初学者求一道ORACLE题。内详

热度:104   发布时间:2016-04-24 05:45:15.0
菜鸟求一道ORACLE题。内详
有两张表T4,T5

SQL>   select   *   from   t4;

MONEY_TIME           WEEK
--------------   ----
01-1月   -07           一
02-1月   -07           二
03-1月   -07           三
04-1月   -07           四
05-1月   -07           五
06-1月   -07           六
07-1月   -07           七
08-1月   -07           一
09-1月   -07           二
10-1月   -07           三
11-1月   -07           四

MONEY_TIME           WEEK
--------------   ----
12-1月   -07           五
13-1月   -07           六
14-1月   -07           七

已选择14行。

SQL>   select   *   from   t5;

MONEY_TIME                     MONEY
--------------   ----------
01-1月   -07                         100
01-1月   -07                         200
02-1月   -07                         200
03-1月   -07                         200
04-1月   -07                         350
07-1月   -07                         110
09-1月   -07                         800
10-1月   -07                       4000
11-1月   -07                         250
12-1月   -07                       1110
18-1月   -07                       1400

MONEY_TIME                     MONEY
--------------   ----------
22-1月   -07                       6000
30-1月   -07                         600
31-1月   -07                         400

已选择14行。

要求有以下几点.
输出一个月来资金流动情况,money_time,week,money3个字段.如果当日没有交易.则MONEY处输入0,一天有多比交易.T4,T5这两个表都是不全的.所以还要把表里没有的日期也加进去.
最后得到表应该是
money_time     week             money
1~~31号           1~7循环         有就写入.没就填0

各位大哥帮忙啊.小弟跪谢.


------解决方案--------------------
给你举个例子: 如果这个月是统计2007-01的数据的话:

=========================sql================================

select mydate,to_char(mydate-1, 'D '),sum(nvl(t5.money,0))
from T4,
t5,
(
select to_date( '2007-01-01 ', 'yyyy-mm-dd ')+rownum-1 mydate from all_objects where rownum <= to_date(to_char(last_day(to_date( '2007-01-01 ', 'yyyy-mm-dd ')), 'yyyy-mm-dd '), 'yyyy-mm-dd ')-to_date((to_char(to_date( '2007-01-01 ', 'yyyy-mm-dd '), 'yyyy-mm ')|| '-01 '), 'yyyy-mm-dd ')+1
  相关解决方案