【发布时间】:2018-03-14 14:41:16
【问题描述】:
我有三个表 Branch、Account_table 和 customer。我正在尝试为以下内容编写 SQL 语句:
在每个分行寻找储蓄账户余额最高的客户。在他们的当前账户中显示他们的姓名、余额、分行 ID 和免费透支限额。
我已经创建了三个表并插入数据:
分支表
BID BADDRESS.STREET BADDRESS.CITY BADDRESS.P
---------- -------------------- -------------------- ----------
901 Nicholson Street Edinburgh EH11 5AB
906 East End Garden Glasgow G181QP
912 Fredrick Street London LA112AS
918 Zink Terrace Edinburgh EH149UU
Account_table
ACCNUM ACCTYPE BALANCE BID.BID INRATE LIMITOFFREEOD OPENDATE
------- --------------- ---------- ---------- ---------- ------------- --------
1001 current 820.5 901 .005 800 01-MAY-11
1010 saving 2155 906 .02 0 08-MAR-10
1002 current 2600 912 .005 1000 10-APR-13
1011 saving 4140 918 .02 0 24-OCT-13
客户表
CUSTID CADDRESS.STREET CADDRESS.CITY CADDRESS.POSTCODE CNAME.FIRSTNAME CNAME.SURNAME
---------- -------------------- ----------- -------------------- --------------- -----------
1002 Adam Street Edinburgh EH112LQ Jack Smith
1003 Adam Street Edinburgh EH112LQ Anna Smith
1004 New Tweed Edinburgh EH1158L Liam Bain
1005 Dundas Street Edinburgh EH119MN Usman Afaque
1006 St Andres Square Edinburgh EH12LNM Claire Mackintosh
分支(bID、街道、城市、p_code、bPhone)
Account(accNum, accType, balance, bID, inRate, limitOfFreeOD, openDate)
客户(custID、街道、城市、邮政编码、职务、名字、surName、custHomePhone、custMobile1、custMobile2、niNum)
粗体是主键斜体是外键(在对象关系中,如果我是对的,我们不使用 Join)。
这就是我想做但失败的事情
select c.custid,
(select max(balance) from account_table a
where c.CUSTID = a.bid.bid
and a.acctype='saving' )as highest_saving,
c.cname.firstname,c.CNAME.surname
from customer c;
有什么帮助吗?谢谢。
【问题讨论】:
-
您在帐户表中缺少列 custID。
标签: oracle11g