SQL Technical Solutions3
SQL Technical Solutions3
sql
SELECT subj.Sem,
SUM(CASE WHEN s.Gender = 'M' THEN 1 ELSE 0 END) AS Male_Count,
SUM(CASE WHEN s.Gender = 'F' THEN 1 ELSE 0 END) AS Female_Count
FROM STUDENT s
JOIN MARKS m ON s.RegNo = m.RegNo
JOIN SUBJECT subj ON m.Subcode = subj.Subcode
GROUP BY subj.Sem
ORDER BY subj.Sem;
sql
UPDATE MARKS m
SET Finalmark = (
SELECT (x + y) / 2
FROM (
SELECT RegNo, Subcode,
GREATEST(
GREATEST(Test1, Test2),
GREATEST(Test2, Test3),
GREATEST(Test1, Test3)
) AS x,
CASE
WHEN Test1 <= Test2 AND Test1 <= Test3 THEN (Test2 + Test3) / 2
WHEN Test2 <= Test1 AND Test2 <= Test3 THEN (Test1 + Test3) / 2
ELSE (Test1 + Test2) / 2
END AS y
FROM MARKS
) t
WHERE t.RegNo = m.RegNo AND t.Subcode = m.Subcode
);
sql
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Student with ID ' || p_regno || ' not found.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
/
8. Bank Table
Table Creation
sql
sql
sql
sql
sql
9. Account Table
Table Creation
sql
sql
sql
sql
sql
DBMS_OUTPUT.PUT_LINE('--------------------');
-- Branch statistics
FOR branch_rec IN (
SELECT Branch_Name,
COUNT(*) AS Num_Accounts,
SUM(Account_Balance) AS Total_Balance,
AVG(Account_Balance) AS Avg_Balance
FROM Account
WHERE p_branch IS NULL OR Branch_Name = p_branch
GROUP BY Branch_Name
ORDER BY Branch_Name
) LOOP
DBMS_OUTPUT.PUT_LINE('Branch: ' || branch_rec.Branch_Name);
DBMS_OUTPUT.PUT_LINE(' Number of Accounts: ' || branch_rec.Num_Accounts);
DBMS_OUTPUT.PUT_LINE(' Total Balance: ' || TO_CHAR(branch_rec.Total_Balance, '$999,999
DBMS_OUTPUT.PUT_LINE(' Average Balance: ' || TO_CHAR(branch_rec.Avg_Balance, '$999,999
DBMS_OUTPUT.PUT_LINE('--------------------');
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
/
Table Creation
sql
sql
SELECT P_Name
FROM ORDER_TABLE
WHERE P_COST >= 1000;
sql
sql
Table Creation
sql
CREATE TABLE SALESMAN (
Salesman_id NUMBER PRIMARY KEY,
Name VARCHAR2(100) NOT NULL,
City VARCHAR2(50),
Commission NUMBER(5,2)
);
INSERT INTO CUSTOMER VALUES (2000, 'Thomas Wilson', 'New York', 3, 1000);
INSERT INTO CUSTOMER VALUES (2001, 'Sarah Brown', 'Chicago', 2, 1001);
INSERT INTO CUSTOMER VALUES (2002, 'Michael Lee', 'Los Angeles', 1, 1002);
INSERT INTO CUSTOMER VALUES (2003, 'Jessica Clark', 'Chicago', 3, 1001);
INSERT INTO CUSTOMER VALUES (2004, 'David Taylor', 'New York', 2, 1000);
INSERT INTO CUSTOMER VALUES (2005, 'Jennifer White', 'Los Angeles', 1, 1002);
INSERT INTO ORDERS VALUES (3000, 1200.50, TO_DATE('2023-01-15', 'YYYY-MM-DD'), 2000, 1000);
INSERT INTO ORDERS VALUES (3001, 950.75, TO_DATE('2023-01-20', 'YYYY-MM-DD'), 2001, 1001);
INSERT INTO ORDERS VALUES (3002, 2500.00, TO_DATE('2023-02-05', 'YYYY-MM-DD'), 2002, 1002);
INSERT INTO ORDERS VALUES (3003, 1800.25, TO_DATE('2023-02-15', 'YYYY-MM-DD'), 2003, 1001);
INSERT INTO ORDERS VALUES (3004, 1100.00, TO_DATE('2023-03-01', 'YYYY-MM-DD'), 2004, 1000);
INSERT INTO ORDERS VALUES (3005, 3200.50, TO_DATE('2023-03-10', 'YYYY-MM-DD'), 2000, 1000);
INSERT INTO ORDERS VALUES (3006, 1500.75, TO_DATE('2023-03-15', 'YYYY-MM-DD'), 2005, 1002);
sql
sql
sql
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Error: Salesman or Customer not found.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
/
FOR depositor IN (
SELECT Account_No, Account_Holder, Balance, Account_Type, Branch_Code
FROM Bank_Account
WHERE Balance > 1000000
HAVING Balance > 1000000 -- Using HAVING clause as per requirement
ORDER BY Balance DESC
) LOOP
DBMS_OUTPUT.PUT_LINE('Account: ' || depositor.Account_No);
DBMS_OUTPUT.PUT_LINE('Holder: ' || depositor.Account_Holder);
DBMS_OUTPUT.PUT_LINE('Balance: ₹' || TO_CHAR(depositor.Balance, '9,999,999.99'));
DBMS_OUTPUT.PUT_LINE('Type: ' || depositor.Account_Type);
DBMS_OUTPUT.PUT_LINE('Branch: ' || depositor.Branch_Code);
DBMS_OUTPUT.PUT_LINE('------------------------------------------');
END LOOP;
END;
/
INSERT INTO Customer VALUES ('CU001', 'John Smith', '555-9876', '[email protected]', '789 Custom
INSERT INTO Customer VALUES ('CU002', 'Jane Doe', '555-5432', '[email protected]', '321 Client A
INSERT INTO Cargo_Type VALUES ('CT001', 'Standard', 'Regular delivery service', 100.00);
INSERT INTO Cargo_Type VALUES ('CT002', 'Express', 'Fast delivery service', 200.00);
INSERT INTO Cargo_Type VALUES ('CT003', 'Fragile', 'Special handling for fragile items', 250.00
INSERT INTO Cargo_Booking VALUES ('BK001', 'CU001', 'CC001', 'CT001', 'New York', 'Chicago',
TO_DATE('2023-01-15', 'YYYY-MM-DD'),
TO_DATE('2023-01-20', 'YYYY-MM-DD'),
25.5, 2.3, 300.00, 'Delivered');
INSERT INTO Cargo_Booking VALUES ('BK002', 'CU002', 'CC002', 'CT002', 'Los Angeles', 'Miami',
TO_DATE('2023-02-10', 'YYYY-MM-DD'),
TO_DATE('2023-02-12', 'YYYY-MM-DD'),
15.0, 1.5, 450.00, 'Delivered');
INSERT INTO Cargo_Booking VALUES ('BK003', 'CU001', 'CC001', 'CT003', 'Chicago', 'Boston',
TO_DATE('2023-03-05', 'YYYY-MM-DD'),
TO_DATE('2023-03-10', 'YYYY-MM-DD'),
10.2, 1.0, 350.00, 'Booked');
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_