You are on page 1of 2

CREATE TABLE Customer_Master (

Cust_No INT PRIMARY KEY,


Cust_Name VARCHAR(50) NOT NULL,
City VARCHAR(50) NOT NULL
);

CREATE TABLE Branch_Master (


Branch_Id INT PRIMARY KEY,
Branch_Name VARCHAR(50) NOT NULL,
City VARCHAR(50) NOT NULL
);

CREATE TABLE Loan_Master (


Loan_Id INT PRIMARY KEY,
Loan_Type VARCHAR(20) CHECK (Loan_Type IN ('Education', 'Personal', 'Home'))
NOT NULL
);

CREATE TABLE Cust_Branch_Loan (


Cust_No INT,
Loan_Id INT,
Branch_Id INT,
Loan_Amount DECIMAL(10, 2) CHECK (Loan_Amount > 0) NOT NULL,
PRIMARY KEY (Cust_No, Loan_Id, Branch_Id),
FOREIGN KEY (Cust_No) REFERENCES Customer_Master(Cust_No),
FOREIGN KEY (Loan_Id) REFERENCES Loan_Master(Loan_Id),
FOREIGN KEY (Branch_Id) REFERENCES Branch_Master(Branch_Id)
);

-- Assuming you have already created the tables

-- [A] Display Customer who borrowed loan from ‘Station’ branch of ‘Pune’ city.

SELECT CM.*
FROM Customer_Master CM
JOIN Cust_Branch_Loan CBL ON CM.Cust_No = CBL.Cust_No
JOIN Branch_Master BM ON CBL.Branch_Id = BM.Branch_Id
WHERE BM.Branch_Name = 'Station' AND BM.City = 'Pune';

-- [B] Display Customer who borrowed loan of maximum amount from ‘S.G.’ branch of
‘Baroda’ City.

SELECT CM.*
FROM Customer_Master CM
JOIN Cust_Branch_Loan CBL ON CM.Cust_No = CBL.Cust_No
JOIN Branch_Master BM ON CBL.Branch_Id = BM.Branch_Id
WHERE BM.Branch_Name = 'S.G.' AND BM.City = 'Baroda'
ORDER BY CBL.Loan_Amount DESC
FETCH FIRST 1 ROWS ONLY;

-- [C] Display Customer who has not borrowed any loan.

SELECT CM.*
FROM Customer_Master CM
LEFT JOIN Cust_Branch_Loan CBL ON CM.Cust_No = CBL.Cust_No
WHERE CBL.Cust_No IS NULL;

-- [D] Display city-wise, branch-wise total loans.

COLUMN City FORMAT A20


COLUMN Branch_Name FORMAT A20
COLUMN TotalLoans FORMAT 9999999.99
SELECT BM.City, BM.Branch_Name, NVL(SUM(CBL.Loan_Amount), 0) AS TotalLoans
FROM Branch_Master BM
LEFT JOIN Cust_Branch_Loan CBL ON BM.Branch_Id = CBL.Branch_Id
GROUP BY BM.City, BM.Branch_Name;

-- [E] Display total customers of ‘Mumbai’ city having ‘Home loan’.

SELECT COUNT(DISTINCT CM.Cust_No) AS TotalCustomers


FROM Customer_Master CM
JOIN Cust_Branch_Loan CBL ON CM.Cust_No = CBL.Cust_No
JOIN Branch_Master BM ON CBL.Branch_Id = BM.Branch_Id
JOIN Loan_Master LM ON CBL.Loan_Id = LM.Loan_Id
WHERE BM.City = 'Mumbai' AND LM.Loan_Type = 'Home';

-- [F] Display customer who borrowed ‘Personal’ loan of minimum amount.

SELECT CM.*
FROM Customer_Master CM
JOIN Cust_Branch_Loan CBL ON CM.Cust_No = CBL.Cust_No
JOIN Loan_Master LM ON CBL.Loan_Id = LM.Loan_Id
WHERE LM.Loan_Type = 'Personal'
ORDER BY CBL.Loan_Amount ASC
FETCH FIRST 1 ROWS ONLY;

You might also like