In a Bank’s database, there are two tables ‘Customer’ and ‘Transaction’ as shown below. Write a query to display customer’s name who has

+1 vote
1.8k views

In a Bank’s database, there are two tables ‘Customer’ and ‘Transaction’ as shown below.

Customer

 Acc_No Cust_Name Cust_City Cust_Phone Open_Bal 2101001 Sunita Ambala 9710557614 10000 2201002 Sandhya Patna 8223545233 15000 2301003 Vivek New Delhi 9972136576 13000 2401004 Meena New Delhi 9321305453 10000

Transaction

 Trans_Id Acc_No Transaction_Type Amount Tr001 2301003 Credit 15000 Tr002 2201002 Credit 20000 Tr003 2101001 Debit 3500 Tr004 2301003 Credit 26000 Tr005 2301003 Credit 24000

With reference to the above given tables, attempt the questions given below:

(i) Write a query to display customer’s name who has withdrawn the money.

(ii) Write a query to display customer’s name along with their transaction details.

(iii) Write a query to display customer’s name who have not done any transaction yet.

(iv) How many rows and column will be there in the Cartesian product of the above given tables. Also mention the degree and cardinality of the Cartesian product of the above given tables.

(v) Select Acc_No, sum(Amount) from Customer c, Transaction t where c.Acc_No=t.Acc_No group by c.Acc_No having Transaction_Type="Credit";

(vi) Discuss the significance of having clause with group by statement with suitable example.

by (75.6k points)
selected

(i) Select cust_name from customer c,transaction t where c.Acc_No=t.Acc_No and Transaction_Type= "Debit";

(ii) Select cust_name, t.* from customer c, transaction t where c.Acc_No=t.Acc_No;

(iii) Select cust_name from customer c,transaction t where c.Acc_No!=t.Acc_No;

(iv) Cartesian Product:

Number of Rows: 20

Number of Columns: 9

Degree: 9

Cardinality: 20

(v)  2301003      65000

2201002       20000

(vi) Sometimes we do not want to see the whole output produced by a statement with Group By clause. We want to see the output only for those groups which satisfy some condition. It means we want to put some condition on individual groups (and not on individual records). A condition on groups is applied by Having clause.

For example consider the following query:

select Acc_No, sum(Amount) from Customer c, Transaction t where c.Acc_No=t.Acc_No group by c.Acc_No having Transaction_Type="Credit";

This query will create account number wise groups and instead of displaying the total amount of all type of transactions, it will only display the total of credit transactions only.

+1 vote