You are on page 1of 12

--MUHAMMAD ASYRAF BIN MOHAMMAD---CLASS EXERCISES WORK---1-SELECT PARTDESC 'Part Name', UNITPRICE 'Original Price', ROUND(UNITPRICE +(UNITPRICE*5/100),2) 'New

Price' FROM PART;

--2-SELECT ORDNO 'Order Number', QUOTEPRICE 'Price' FROM ORDPART WHERE PARTID = 'DW100' ORDER BY QUOTEPRICE DESC;

--3-USE Orders GO INSERT INTO PART VALUES ('CH500', 'KETTLE', 1, 0.00, 3, 10, 1, 'N'); SELECT 'Order Date'= CASE WHEN DATENAME(D, GETDATE()) IN ('1','21','31') THEN DATENAME(DD,GETDATE())+'st of '+DATENAME(MONTH,GETDATE())+', '+DATENAME(YEAR,GETDATE()) WHEN DATENAME(D, GETDATE()) IN ('2','22') THEN DATENAME(DD,GETDATE())+'nd of '+DATENAME(MONTH,GETDATE())+', '+DATENAME(YEAR,GETDATE()) WHEN DATENAME(D, GETDATE()) IN ('3','23') THEN DATENAME(DD,GETDATE())+'rd of '+DATENAME(MONTH,GETDATE())+', '+DATENAME(YEAR,GETDATE()) ELSE DATENAME(DD,GETDATE())+'th of '+DATENAME(MONTH,GETDATE())+', '+DATENAME(YEAR,GETDATE()) END, UNONHAND 'Qty', 'RM'+CONVERT(VARCHAR, UNITPRICE, 1) 'Price', 'RM'+CONVERT(VARCHAR, UNITPRICE*UNONHAND, 1) 'Total' FROM PART;

--4a-SELECT CONVERT(VARCHAR, ORDS.ORDDTE, 106) 'Order Date', PART.PARTDESC 'Description', ORDPART.QTY 'Qty', ORDPART.QUOTEPRICE 'Price', ORDPART.QTY*ORDPART.QUOTEPRICE 'Total' FROM PART, ORDPART, ORDS WHERE PART.PARTID = ORDPART.PARTID AND ORDPART.ORDNO = ORDS.ORDNO;

--4b---ADDCUST SCRIPT-USE Orders GO INSERT INTO CUST VALUES ('GREEN', '2 JET DRV', 0, 1000, 2); SELECT CUSTNAME 'custname', BALANCE 'balance', ORDNO 'ordno', CONVERT(VARCHAR, ORDDTE, 6) 'Order Date' FROM CUST LEFT JOIN ORDS ON CUST.CUSTNO = ORDS.CUSTNO;

--5a-SELECT COUNT(ORDNO) 'Number Of Orders' FROM ORDPART WHERE PARTID = 'DW100';

--5b-SELECT ORDS.ORDNO 'Order Number', CUST.CUSTNAME 'Customer Name', 'RM'+CAST(SUM(QTY*QUOTEPRICE) AS VARCHAR) 'Total Price' FROM ORDS JOIN CUST ON ORDS.CUSTNO = CUST.CUSTNO JOIN ORDPART ON ORDS.ORDNO = ORDPART.ORDNO GROUP BY ORDS.ORDNO, CUST.CUSTNAME;

--6a-SELECT CUSTNAME 'Customer Name' FROM CUST JOIN ORDS ON CUST.CUSTNO = ORDS.CUSTNO WHERE ORDDTE = (SELECT ORDDTE FROM ORDS WHERE ORDNO = 4);

--6b-SELECT ORDNO, PART.PARTID, PARTDESC FROM ORDPART JOIN PART ON ORDPART.PARTID = PART.PARTID WHERE ORDNO IN ( SELECT ORDNO FROM ORDPART WHERE PARTID IN ( SELECT PARTID FROM ORDPART WHERE ORDNO = 8)) AND ORDNO != 8;

--7-BEGIN TRANSACTION --7a-INSERT INTO CUST VALUES('ASYRAF', '31 TMN BARU', 0.00, 1000.00, 2); SAVE TRANSACTION A --7b-INSERT INTO ORDS VALUES(60, GETDATE(), 7); --ROLLBACK TRANSACTION A-- /*USE IF ERROR*/ SAVE TRANSACTION B --7c-INSERT INTO ORDPART VALUES(60, 'DW100', 1, 900.00); INSERT INTO ORDPART VALUES(60, 'VC100', 1, 230.00); --ROLLBACK TRANSACTION B-- /*USE IF ERROR*/ SAVE TRANSACTION C --7d-UPDATE CUST SET BALANCE = 350.00 WHERE CUSTNO = 7; --ROLLBACK TRANSACTION C-- /*USE IF ERROR*/ SAVE TRANSACTION D --7e-DELETE FROM ORDPART WHERE PARTID = 'DW100' AND ORDNO = 60; --ROLLBACK TRANSACTION D-- /*USE IF ERROR*/ SAVE TRANSACTION E COMMIT TRANSACTION;

--8-CREATE TABLE Owners (OwnerId INT, OwnerFamName VARCHAR(30), OwnerOtherNames VARCHAR(25));

--9a-CREATE TABLE Animal (AnimalId INT NOT NULL, OwnerId INT NOT NULL, AnimalName VARCHAR(25) NOT NULL, Gender VARCHAR(1), Desexed VARCHAR(1) DEFAULT 'N', YrBorn INT, FirstVisit SMALLDATETIME DEFAULT GETDATE() CONSTRAINT Animal_AnimalId_PK PRIMARY KEY (AnimalId));

--9b-ALTER TABLE Owners ALTER COLUMN OwnerId INT NOT NULL; ALTER TABLE Owners ADD CONSTRAINT Owners_OwnerId_PK PRIMARY KEY (OwnerId);

--9c-ALTER TABLE Animal ADD CONSTRAINT Animal_OwnerId_FK FOREIGN KEY (OwnerId) REFERENCES Owners(OwnerId);

--10a-CREATE VIEW CustDet(customer, orddte, ordno, totalamt) AS SELECT CUSTNAME, CONVERT(VARCHAR, ORDDTE, 111), ORDS.ORDNO, SUM(QTY*QUOTEPRICE) FROM ORDS JOIN CUST ON ORDS.CUSTNO = CUST.CUSTNO JOIN ORDPART ON ORDS.ORDNO = ORDPART.ORDNO GROUP BY CUSTNAME, ORDDTE, ORDS.ORDNO ;

--10b-SELECT * FROM CustDet WHERE ordno = 5;

--10c-USE Classwork GO CREATE VIEW DeptVu(DeptNumber, DeptName) AS SELECT DEPTNO, DNAME FROM DEPT;

--10d-INSERT INTO DeptVu VALUES (50, '');

--11a-CREATE INDEX Name_idx ON Owners(OwnerFamName, OwnerOtherNames);

--11b-CREATE SYNONYM Owner20 FOR Orders.dbo.Owners; SELECT OwnerFamName, OwnerOtherNames FROM Owner20;

--12a-SELECT ORDS.ORDNO 'ordno', CONVERT(VARCHAR, ORDDTE, 6) 'Orddte', SUM(QTY*QUOTEPRICE) 'Total' FROM ORDS JOIN ORDPART ON ORDS.ORDNO = ORDPART.ORDNO GROUP BY ORDS.ORDNO, ORDDTE HAVING SUM(QTY*QUOTEPRICE) >= (SELECT SUM(QTY*QUOTEPRICE) FROM ORDPART WHERE ORDNO = 3) AND ORDS.ORDNO != 60;

--12b-SELECT ENAME 'Employee Name', JOB 'Job', SAL 'Salary', D.Total 'Total Salary for The Department' FROM EMP JOIN (SELECT DEPTNO, SUM(SAL) 'Total' FROM EMP GROUP BY DEPTNO)D ON EMP.DEPTNO = D.DEPTNO;

You might also like