簡體   English   中英

我將如何從兩個不同的表中進行選擇並在 Oracle 中獲得以下內容

[英]How would I select from two different tables and get the following in Oracle

我需要執行以下操作:

從每個分行,找到經理姓名和他們管理的#customers 以及他們管理的客戶的總存款余額

我的數據庫看起來像這樣

drop table branch;
CREATE TABLE branch (
BNO NUMBER(1,0),
MANAGER_NAME VARCHAR(6),
Salary NUMBER(6,0),
MGRSTARTDATE TIMESTAMP (2)
);


INSERT INTO branch VALUES
(1,'BOB',100000,'19-JUN-2001');
INSERT INTO branch VALUES
(2,'CHRIS',150000,'01-Jan-2005');
INSERT INTO branch VALUES
(3,'ANGELA',90000,'22-May-1998');
INSERT INTO branch VALUES
(4,'KIM',90000,'29-May-1996');

drop table account;
CREATE TABLE account (
ACC NUMBER(3,0),
CNAME VARCHAR(4),
BNO NUMBER(1,0),
BALANCE NUMBER(4,0)
);

INSERT INTO account VALUES
(101,'LISA',1,100);
INSERT INTO account VALUES
(102,'LISA',2,500);
INSERT INTO account VALUES
(103,'TOM',1,400);
INSERT INTO account VALUES
(104,'JOHN',3,1200);
INSERT INTO account VALUES
(105,'TOM',3,900);

到目前為止我所擁有的,不知道下一步該怎么做

SELECT MANAGER_NAME
FROM branch;

我想我需要做某種類型的加入,但不知道如何。

嘗試這個

select br.manager_name, acc.cname from account acc 
left join branch br 
ON acc.bno = br.bno

下面將總結經理管理的余額

select br.manager_name, acc.cname, sum(acc.balance) from account acc 
left join branch br 
ON acc.bno = br.bno
group by br.bno, br.manager_name

您將需要使用 OUTER JOIN(這與 LEFT/RIGHT 連接相同)。 外連接從一個表中獲取所有值,並添加來自與鍵匹配的第二個表中的數據。 您用來匹配的鍵是“BNO”值——hoangnh 的示例涵蓋了這一點

作為參考,另一種類型的連接是 INNER JOIN,它不起作用,因為它只會返回兩個表中鍵匹配的值(在您的示例中,執行內部連接將從最終結果中排除 BNO=4。做一個外連接會將 BNO=4 包含在客戶值的空值中)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM