+1 vote
in Class 12 by kratos

In a Bank’* 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’* name who has withdrawn the money.

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

(iii) Write a query to display customer’* 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.

1 Answer

+3 votes
by kratos
 
Best answer

(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.

...