【发布时间】:2014-06-01 12:39:38
【问题描述】:
我有两个银行数据库表。一个是客户列表,另一个是帐户列表。当我离开外部加入客户帐户时,我有客户记录,但没有任何内容。我怎样才能为他们打印零?
SQL> CREATE TABLE Customer (
2 BSB# CHAR(6) NOT NULL, /* Bank BSB number */
3 Customer# NUMBER(10) NOT NULL, /* Customer number */
4 Name VARCHAR2(30) NOT NULL, /* Customer name */
5 DOB Date, /* Date of birth */
6 Sex CHAR, /* M-Male, F-Female */
7 Address VARCHAR2(50) NOT NULL, /* Customer address */
8 Phone# VARCHAR2(15), /* Phone number */
9 CONSTRAINT Project_PK PRIMARY KEY(BSB#, Customer#),
10 CONSTRAINT Project_FK FOREIGN KEY (BSB#) REFERENCES Bank(BSB#)
11 );
SQL> CREATE TABLE Account (
2 BSB# CHAR(6) NOT NULL, /* Bank BSB number */
3 Customer# NUMBER(10) NOT NULL, /* Customer number */
4 Account# NUMBER(10) NOT NULL, /* Account number */
5 Type VARCHAR2(20) NOT NULL, /* Account type */
6 Balance NUMBER(10,2) NOT NULL, /* Account balance */
7 CONSTRAINT WorksOn_PK PRIMARY KEY(BSB#, Account#),
8 CONSTRAINT WorksOn_FK1 FOREIGN KEY(BSB#, Customer#) REFERENCES Customer(BSB#, Customer#)
9 );
命令:
select c.name, CUS.MYSUM
from customer c
left outer join
(
select customer#,sum(balance) MYSUM
from account
group by customer#
) CUS
on c.customer# = CUS.customer#;
输出:
NAME MYSUM
------------------------------ ----------
Ben -470211.09
Mike -470211.09
Jean -60028.03
Douglas 1970.35
Josef 1970.35
Duke 54469.12
Alex -323631.76
Harry
Will
我想在哈利和威尔前面打印 0?
【问题讨论】:
标签: mysql sql sql-server oracle oracle11g