Update DBMS/SQL/Week6/writeup.md
This commit is contained in:
parent
78565b88cb
commit
3f57583a7b
@ -76,20 +76,20 @@ PL/SQL procedure successfully completed.
|
||||
|
||||
```SQL
|
||||
SQL> CREATE OR REPLACE PROCEDURE GetDriversWithoutAccidents AS
|
||||
2 BEGIN
|
||||
3 FOR rec IN (
|
||||
4 SELECT p.DRIVER_ID#, p.NAME, p.ADDRESS
|
||||
5 FROM person p
|
||||
6 LEFT JOIN participated pa ON p.DRIVER_ID# = pa.DRIVER_ID#
|
||||
7 WHERE pa.REPORT_NUMBER IS NULL
|
||||
8 ) LOOP
|
||||
9 DBMS_OUTPUT.PUT_LINE('Driver ID: ' || rec.DRIVER_ID# ||
|
||||
begin
|
||||
for rec in (
|
||||
select p.driver_id#, p.name, p.address
|
||||
from person p
|
||||
left join participated pa on p.driver_id# = pa.driver_id#
|
||||
where pa.report_number is null
|
||||
) loop
|
||||
dbms_output.put_line('driver id: ' || rec.driver_id# ||
|
||||
|
||||
10 ', Name: ' || rec.NAME ||
|
||||
11 ', Address: ' || rec.ADDRESS);
|
||||
12 END LOOP;
|
||||
13 END;
|
||||
14 /
|
||||
', name: ' || rec.name ||
|
||||
', address: ' || rec.address);
|
||||
end loop;
|
||||
end;
|
||||
/
|
||||
|
||||
Procedure created.
|
||||
```
|
||||
@ -101,3 +101,33 @@ Driver ID: 1235, Name: Rohit, Address: Banglalore India
|
||||
PL/SQL procedure successfully completed.
|
||||
```
|
||||
|
||||
Q5. Write a function that takes a REGNO as input and returns the total number of accidents in which the car was involved
|
||||
```sql
|
||||
SQL> create or replace function gettotalaccidentsbyregno(p_regno in varchar2)
|
||||
return number
|
||||
is
|
||||
v_total_accidents number;
|
||||
begin
|
||||
select count(*)
|
||||
into v_total_accidents
|
||||
from participated
|
||||
where regno = p_regno;
|
||||
return v_total_accidents;
|
||||
exception
|
||||
when no_data_found then
|
||||
return 0;
|
||||
when others then
|
||||
raise;
|
||||
end;
|
||||
/
|
||||
|
||||
Function created.
|
||||
```
|
||||
```SQL
|
||||
SQL> SELECT GetTotalAccidentsByRegno('ABCD0001') AS Total_Accidents
|
||||
2 FROM dual;
|
||||
|
||||
TOTAL_ACCIDENTS
|
||||
---------------
|
||||
1
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user