有2个table
table a 存放用户基本信息id name ...
A001 Apple ...
A002 Bill ...
...table b 存放发票号,付款日期,金额,一个月一个用户可以有多张发票,对应的也有多个金额id bill_num payment_date amount
A001 b_bj_07/0201 02/01/2007 500
A001 b_bj_07/0202 02/02/2007 600
A001 b_bj_07/0301 03/01/2007 700
A002 b_sy_07/0101 01/01/2007 800
...现在要把这里两个表的数据显示出来,一个客户一行,
bill_num输入该用户该年所有发票号,接下来的每个月显示该客户该月的所有金额,格式如下:id name bill_num Jan Feb Mar...(一共12个月)
----------------------------------------------------------------
A001 Apple b_bj_07/0201 0 1100 700 ...
b_bj_07/0202
b_bj_07/0301
----------------------------------------------------------------
A002 Bill b_sy_07/0101 800 0 0 ...请问这样能用一句SQL写出来吗?
table a 存放用户基本信息id name ...
A001 Apple ...
A002 Bill ...
...table b 存放发票号,付款日期,金额,一个月一个用户可以有多张发票,对应的也有多个金额id bill_num payment_date amount
A001 b_bj_07/0201 02/01/2007 500
A001 b_bj_07/0202 02/02/2007 600
A001 b_bj_07/0301 03/01/2007 700
A002 b_sy_07/0101 01/01/2007 800
...现在要把这里两个表的数据显示出来,一个客户一行,
bill_num输入该用户该年所有发票号,接下来的每个月显示该客户该月的所有金额,格式如下:id name bill_num Jan Feb Mar...(一共12个月)
----------------------------------------------------------------
A001 Apple b_bj_07/0201 0 1100 700 ...
b_bj_07/0202
b_bj_07/0301
----------------------------------------------------------------
A002 Bill b_sy_07/0101 800 0 0 ...请问这样能用一句SQL写出来吗?
解决方案 »
- oracle 不同用户之间的授权访问 命令怎么写
- PL/SQL Developer和Oracle Developer 2000和Oracle Developer 10g Suite
- 导入数据,搞了一天没搞定 在线等待
- 新手求一条简单查询语句
- 是不是从其他数据类型转换到varchar类型的不需要做什么转换?
- 新手请各为大哥大姐帮忙!!!
- 菜鸟求助SQL语句:如何删除这个字段?
- 怎样在.bat文件中自动关闭sqlplus?
- http://otn.oracle.com/documentation里面的文章怎样才能看啊?
- 用sql语句实现挂号子系统后台程序
- 求sql:如何查找以某些字符开头的用户表,并清空其中的内容
- update问题,求助!
1、完成前部分,a、b 关联一下,之后判断每组除第一名之外,空白显示:
id name bill_num
---------------------------
A001 Apple b_bj_07/0201
b_bj_07/0202
b_bj_07/0301
----------------------------
A002 Bill b_sy_07/0101 内核sql类似如下:
SELECT c.id,c.name,c.bill_num,
row_number() over(partition by c.id,c.name order by c.bill_num) as cu1
FROM
(select a.id,a.name,b.bill_num
from a,b
where a.id=b.id(+)) c
order by c.bill_num
之后decode(cu1,1,c.id,''),decode(cu1,1,c.name,'')
Jan Feb Mar...(一共12个月)
------------------------------------
0 1100 700 ...------------------------------------
800 0 0 ... 2-1、创建b的子表,以id,
substr(payment_date,1,2)||substr(payment_date,7,4) as xxx分组统计amount;
之后列传行
decode(xxx,'012007',amount的和) as Jan,
decode(xxx,'022007',amount的和) as Feb,
.......
2-2、b的子表与a关联,用id,完成后半部分的主要格式。