【问题标题】:SQL Query to find details of branches & Number of account in each branch [closed]SQL查询以查找分支的详细信息和每个分支中的帐户数[关闭]
【发布时间】:2021-09-11 04:51:00
【问题描述】:

我正在使用 Oracle11G 数据库。有 Employee、Bank_Branch 和 Account 三个表。

员工(EID,ENAME)
BANK_BRANCH (BCODE, BNAME)
ACCOUNT(ACC_No, EID, BCODE, AMOUNT, Account_TYPE)

*EMP-TABLE*
''''''''''
EID      ENAME
1        RAM
2        SHYAM
3        RAKESH

*BRANCH-TABLE*
""""""""""""""
BCODE    BNAME
B001     Dhaka
B002     Munger
B003     KOTA

*ACCOUNT-TABLE*
"""""""""""""""
ACC_NO EID  BCODE  AMOUNT  ACCOUNT_TYPE
  1     1   B001   5000    Saving
  2     1   B001   2000    Current
  3     2   B003   4000    Saving
  4     3   B002   2000    Saving
  5     3   B002   3000    Current
  6     4   B001   1200    Saving

这里每个员工最多可以拥有两种类型的帐户。保存或当前。我必须找到分支机构的详细信息和每个分支机构的帐户数量。

MY OUTPUT SHOULD BE LIKE THIS 
"""""""""""""""""""""""""""""
BCODE   BNAME  TOTAL_ACCOUNT
B001    DHANKA      3
B002    Munger      2
B003    KOTA        1  

I have tried multiple queries but they didn't work... Please Help..
Thanks in Advance.

【问题讨论】:

  • 我建议您包含一些示例数据以及您希望从查询中获得的输出,假设示例数据在表中。对我来说,阅读你的描述,不清楚你需要什么,一个例子可能会说清楚。
  • 如果你用的是Oracle11G,为什么要在标签里放mysql
  • “我已经尝试了多个查询,但它们不起作用”请edit 提出问题并包括尝试过的查询并解释它们为什么不起作用以及是什么你期望他们生产。
  • 你知道聚合函数吗?我想知道您为什么提到“每个员工最多可以拥有两种类型的帐户”它如何影响输出?

标签: sql oracle11g


【解决方案1】:

您需要连接 BANK_BRANCH 和 ACCOUNT 表,使用 count(1) 和 GROUP BY 进行汇总。

select
   BANK_BRANCH.BCODE
  ,BANK_BRANCH.BNAME
  ,count(1) as TOTAL_ACCOUNT
from BANK_BRANCH
left join ACCOUNT
  on BANK_BRANCH.BCODE = ACCOUNT.BCODE
group by
   BANK_BRANCH.BCODE
  ,BANK_BRANCH.BNAME

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2016-11-06
    • 2021-07-16
    • 1970-01-01
    • 2021-03-11
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多