You are on page 1of 17

Team Golf Bellevue University Bellevue, NE 68005 May 8, 2011 Uncle Bob Bobs Home Repairs 123 Repair

Lane Bellevue, NE 68005 Dear Bob: In this economy a business enrapture needs to stay ahead of the competition. We here are Team Golf know the importance of streamlining your costs while increasing your profit margin. Like you, we take pride in what we do and believe the customer is the most important part of our job. Team Golf wants to work with you in building not only a database, but the confidence that your business records are secure and accurate. This correspondence outlines the complete scope of work you requested, including objectives, procedures, identification of responsibilities, and estimated fees. OBJECTIVE Team Golf will build a database to tracking all current and future customers. You will be able to pull custom reports on all of the work you have completed. Know at an instance what outstanding bids you have out there and what was bided on to do. The database will be configured to pull a report every 30 days for all outstanding debt. SCOPE OF SERVICES 1. The scope of this project is to build you a database and front end to manage your customers. It will include a detailed list of your supplies and any material you used on the job. An employees interface is provided to be able to track time and expense each employee does on any job. An interface will be built to meet your needs and requirements. An area that has a list of predefined reports, and an interface in which to generate your own custom reports. 2. The following will be outside the scope of this project. The loading of all existing and future customers into the database is the sole responsibility of you the customer. Any configurations required of the server other then connecting the database and application to communicate with each other. If the database doesnt reside on the same physical server as the application then you the customer are required to configure any network settings. TRAINING 3. It is our mission to ensure you and your staff is fully trained in the use of the custom user interface. We will send our staff to your site to teach you how in input data and to pull

Mr. Bob May 17, 2011 Page 2 built in or custom reports. If required we have a 24 hour help desk that can walk you through any problems you are having. CLOSING We appreciate the opportunity to service your database needs. If you want to accept this proposal, please contact Team Golf to discuss your personalized interface. Sincerely,

Team Golf

Mr. Bob May 17, 2011 Page 3 Business Rules

 A customer may have zero or more jobs assigned to them.  A job has only one customer  A job can have zero or more bids  A bid can have only one job  A bid may have Zero or many line items  Each line item has only one bid.  A bid may have Zero or many labor lines  Each labor line has a bid  Each job has Zero or many supplier invoices  Each supplier invoice has a job  Each job has zero or many customer invoices  Each job has zero or many suppliers  Each supplier supplies parts for zero or many jobs  Each job has zero or many customer invoices lines  Each customer invoices line can have zero or many jobs  Each product has one or many customer invoice lines  Each customer invoice line can have a product  Each supplier can have one or many products  A product can have a vendor  Each vendor has zero or many vendor invoice  Each vendor invoice can have a single vendor.

Mr. Bob May 17, 2011 Page 4

Mr. Bob May 17, 2011 Page 5 -- Generated by Oracle SQL Developer Data Modeler 3.0.0.665 -- at: 2011-05-08 18:16:19 CDT -- site: Oracle Database 11g -- type: Oracle Database 11g CREATE TABLE BID ( BID_ID CHAR (5) NOT NULL , BID_DATE DATE , JOB_JOB_ID CHAR (5) NOT NULL ) ; ALTER TABLE BID ADD CONSTRAINT BID_PK PRIMARY KEY ( BID_ID ) ; CREATE TABLE BIDLABOR ( BLABOR_ID CHAR (5 CHAR) NOT NULL , BLABOR_HOURS INTEGER , EMPLOYEE_ID CHAR (8 CHAR) NOT NULL , BID_BID_ID CHAR (5) NOT NULL ) ; ALTER TABLE BIDLABOR ADD CONSTRAINT BIDLABOR_PK PRIMARY KEY ( BLABOR_ID ) ; CREATE TABLE BIDLINES ( BLINE_ID CHAR (5) NOT NULL , BLINE_QTY INTEGER , BID_BID_ID CHAR (5) NOT NULL , PRODUCT_PROD_ID CHAR (5) NOT NULL ) ; ALTER TABLE BIDLINES ADD CONSTRAINT BIDLINES_PK PRIMARY KEY ( BLINE_ID ) ; CREATE TABLE CINVLINE (CINVLINE CHAR (8) NOT NULL , CINVLINE_QTY INTEGER , PRODUCT_PROD_ID CHAR (5) NOT NULL , CUSTOMERINVOICE_CINV_ID CHAR (8) NOT NULL ) ; ALTER TABLE CINVLINE ADD CONSTRAINT CINVLINE_PK PRIMARY KEY ( CINVLINE ) ; CREATE TABLE CUSTOMER ( CUST_ID CHAR (5) NOT NULL , CUST_LNAME VARCHAR2 (20) , CUST_FNAME VARCHAR2 (20) , CUST_MI VARCHAR2 (20) , CUST_STREET VARCHAR2 (20) , CUST_CITY VARCHAR2 (20) , CUST_STATE VARCHAR2 (20) , CUST_ZIP VARCHAR2 (20) , CUST_PHONE VARCHAR2 (20) , CUST_BALANCE FLOAT (10) ) ; ALTER TABLE CUSTOMER ADD CONSTRAINT CUSTOMER_PK PRIMARY KEY ( CUST_ID ) ; CREATE TABLE CUSTOMERINVOICE

Mr. Bob May 17, 2011 Page 6 ( CINV_ID CHAR (8) NOT NULL , CINV_DATE DATE , JOB_JOB_ID CHAR (5) NOT NULL ) ; ALTER TABLE CUSTOMERINVOICE ADD CONSTRAINT CUSTOMERINVOICE_PK PRIMARY KEY ( CINV_ID ) ; CREATE TABLE EMPLOYEE ( ID CHAR (8 CHAR) NOT NULL , LNAME VARCHAR2 (30 CHAR) , FNAME VARCHAR2 (30 CHAR) , MI VARCHAR2 (1 CHAR) , STREET VARCHAR2 (40 CHAR) , CITY VARCHAR2 (30 CHAR) , STATE VARCHAR2 (2 CHAR) , ZIP VARCHAR2 (12 CHAR) , PHONE VARCHAR2 (12 CHAR) , BID_HOUR_RATE INTEGER , PAY_HOUR_RATE INTEGER ) ; ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPLOYEE_PK PRIMARY KEY ( ID ) ; CREATE TABLE JOB ( JOB_ID CHAR (5) NOT NULL , JOB_TITLE VARCHAR2 (256) , JOB_SCOPE VARCHAR2 (4000) , JOB_START_DATE DATE , JOB_PAYMENT_METHOD VARCHAR2 (60) , CUSTOMER_CUST_ID CHAR (5) NOT NULL ) ; ALTER TABLE JOB ADD CONSTRAINT JOB_PK PRIMARY KEY ( JOB_ID ) ; CREATE TABLE PRODUCT ( PROD_ID CHAR (5) NOT NULL , PROD_DESCRIPTION VARCHAR2 (4000) , PROD_LIST_PRICE FLOAT (8) , SUPPLIER_SUPPLIER_ID CHAR (5) NOT NULL ) ; ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY ( PROD_ID ) ; CREATE TABLE SUPPLIER ( SUPPLIER_ID CHAR (5) NOT NULL , SUPPLIER_NAME VARCHAR2 (40) , SUPPLIER_STREET VARCHAR2 (60) , SUPPLIER_CITY VARCHAR2 (40) , SUPPLIER_STATE VARCHAR2 (2) , SUPPLIER_ZIP VARCHAR2 (10) , SUPPLIER_PHONE VARCHAR2 (12) , SUPPLIER_ACCT_NUM VARCHAR2 (60) ,

Mr. Bob May 17, 2011 Page 7 SUPPLIER_DISCOUNT VARCHAR2 (3) , SUPPLIER_BALANCE FLOAT (8) , SUPPLIER_BALANCE_DUE FLOAT (8) , SUPPLIER_PAYMENT_DUE_DATE DATE ) ; ALTER TABLE SUPPLIER ADD CONSTRAINT SUPPLIER_PK PRIMARY KEY ( SUPPLIER_ID ) ; CREATE TABLE SUPPLIERINVOICE ( SINVOICE_ID CHAR (5) NOT NULL , SINVOICE_DATE DATE , SINVOICE_AMOUNT FLOAT (8) , SINVOICE_DUE_DATE DATE , JOB_JOB_ID CHAR (5) NOT NULL , SUPPLIER_SUPPLIER_ID CHAR (5) NOT NULL ) ; ALTER TABLE SUPPLIERINVOICE ADD CONSTRAINT SUPPLIERINVOICE_PK PRIMARY KEY ( SINVOICE_ID ) ; ALTER TABLE BIDLABOR ADD CONSTRAINT BIDLABOR_BID_FK FOREIGN KEY ( BID_BID_ID ) REFERENCES BID ( BID_ID ) ON DELETE CASCADE ; ALTER TABLE BIDLABOR ADD CONSTRAINT BIDLABOR_EMPLOYEE_FK FOREIGN KEY ( EMPLOYEE_ID) REFERENCES EMPLOYEE ( ID) ; ALTER TABLE BIDLINES ADD CONSTRAINT BIDLINES_BID_FK FOREIGN KEY ( BID_BID_ID) REFERENCES BID ( BID_ID ) ON DELETE CASCADE ; ALTER TABLE BIDLINES ADD CONSTRAINT BIDLINES_PRODUCT_FK FOREIGN KEY ( PRODUCT_PROD_ID ) REFERENCES PRODUCT ( PROD_ID) ; ALTER TABLE BID ADD CONSTRAINT BID_JOB_FK FOREIGN KEY ( JOB_JOB_ID ) REFERENCES JOB ( JOB_ID) ON DELETE CASCADE ; ALTER TABLE CINVLINE ADD CONSTRAINT CINVLINE_CUSTOMERINVOICE_FK FOREIGN KEY ( CUSTOMERINVOICE_CINV_ID) REFERENCES CUSTOMERINVOICE ( CINV_ID) ON DELETE CASCADE ; ALTER TABLE CINVLINE ADD CONSTRAINT CINVLINE_PRODUCT_FK FOREIGN KEY ( PRODUCT_PROD_ID) REFERENCES PRODUCT ( PROD_ID ) ; ALTER TABLE CUSTOMERINVOICE

Mr. Bob May 17, 2011 Page 8 ADD CONSTRAINT CUSTOMERINVOICE_JOB_FK FOREIGN KEY ( JOB_JOB_ID ) REFERENCES JOB ( JOB_ID) ON DELETE CASCADE ; ALTER TABLE JOB ADD CONSTRAINT JOB_CUSTOMER_FK FOREIGN KEY (CUSTOMER_CUST_ID) REFERENCES CUSTOMER ( CUST_ID) ON DELETE CASCADE; ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_SUPPLIER_FK FOREIGN KEY ( SUPPLIER_SUPPLIER_ID) REFERENCES SUPPLIER ( SUPPLIER_ID) ; ALTER TABLE SUPPLIERINVOICE ADD CONSTRAINT SUPPLIERINVOICE_JOB_FK FOREIGN KEY ( JOB_JOB_ID) REFERENCES JOB ( JOB_ID ) ON DELETE CASCADE ; ALTER TABLE SUPPLIERINVOICE ADD CONSTRAINT SUPPLIERINVOICE_SUPPLIER_FK FOREIGN KEY (SUPPLIER_SUPPLIER_ID ) REFERENCES SUPPLIER ( SUPPLIER_ID) ;

Mr. Bob May 17, 2011 Page 9 -- Golf Project Data Load Script -- CUSTOMER Table -- CUST_ID CHAR (5) NOT NULL , -- CUST_LNAME VARCHAR2 (20) , -- CUST_FNAME VARCHAR2 (20) , -- CUST_MI VARCHAR2 (20) , -- CUST_STREET VARCHAR2 (20) , -- CUST_CITY VARCHAR2 (20) , -- CUST_STATE VARCHAR2 (20) , -- CUST_ZIP VARCHAR2 (20) , -- CUST_PHONE VARCHAR2 (20) , -- CUST_BALANCE FLOAT (10) INSERT INTO CUSTOMER (CUST_ID,CUST_LNAME,CUST_FNAME,CUST_MI,CUST_STREET,CUST_CITY,CUST_S TATE,CUST_ZIP,CUST_PHONE,CUST_BALANCE) VALUES (1001,'Smith','Dave','P','1234 1st Street','Omaha','NE','68136','402-555-1212','123.00'); INSERT INTO CUSTOMER (CUST_ID,CUST_LNAME,CUST_FNAME,CUST_MI,CUST_STREET,CUST_CITY,CUST_S TATE,CUST_ZIP,CUST_PHONE,CUST_BALANCE) VALUES (1002,'Jones','Mike','G','4445 S. East Street','Lincoln','NE','60223','402-6784545','0.00'); INSERT INTO CUSTOMER (CUST_ID,CUST_LNAME,CUST_FNAME,CUST_MI,CUST_STREET,CUST_CITY,CUST_S TATE,CUST_ZIP,CUST_PHONE,CUST_BALANCE) VALUES (1003,'Kinsella','Lisa','G','100 Oak Street','Sioux City','IA','51106','712-2778439','1500.00'); -- JOB Table -- JOB_ID CHAR (5) NOT NULL , -- JOB_TITLE VARCHAR2 (256) , -- JOB_SCOPE VARCHAR2 (4000) , -- JOB_START_DATE DATE , -- JOB_PAYMENT_METHOD VARCHAR2 (60) , -- CUSTOMER_CUST_ID CHAR (5) NOT NULL INSERT INTO JOB VALUES(1001, 'Carpet Repair', 'The scope of this project is to repair the living room carpet by removing the stained area and patch with piece from closet. All materials and labor included in the bid.', '13Jun2010','CASH', 1001); INSERT INTO JOB VALUES(1002, 'Window Repair', 'The scope of this project is the repair the broken glass pannel in the main bedroom. All materials and labor included in the bid','11Aug2010', 'CREDIT_CARD', 1002); INSERT INTO JOB VALUES(1003, 'Garage Door Replacement','The scope of this project is to replace the broken garage door. All materials and labor included in the bid.', '27Mar2011', 'CHECK', 1003);

Mr. Bob May 17, 2011 Page 10 -- BID Table -- BID_ID CHAR (5) NOT NULL , -- BID_DATE DATE , -- JOB_JOB_ID CHAR (5) NOT NULL INSERT INTO BID VALUES(1001,'11Jun2010',1001); INSERT INTO BID VALUES(1002,'07Aug2010',1002); INSERT INTO BID VALUES(1003,'20Mar2011',1003); -- EMPLOYEE Table -- ID CHAR (8 CHAR) NOT NULL , -- LNAME VARCHAR2 (30 CHAR) , -- FNAME VARCHAR2 (30 CHAR) , -- MI VARCHAR2 (1 CHAR) , -- STREET VARCHAR2 (40 CHAR) , -- CITY VARCHAR2 (30 CHAR) , -- STATE VARCHAR2 (2 CHAR) , -- ZIP VARCHAR2 (12 CHAR) , -- PHONE VARCHAR2 (12 CHAR) , -- BID_HOUR_RATE INTEGER , -- PAY_HOUR_RATE INTEGER INSERT INTO EMPLOYEE (ID, LNAME, FNAME, MI, STREET, CITY, STATE, ZIP, PHONE, BID_HOUR_RATE, PAY_HOUR_RATE) VALUES (1001, 'Rothman', 'Gregory', 'A', '1234 1ST Street', 'Omaha', 'NE', '68111', '123-1231234', '100', '20'); INSERT INTO EMPLOYEE (ID, LNAME, FNAME, MI, STREET, CITY, STATE, ZIP, PHONE, BID_HOUR_RATE, PAY_HOUR_RATE) VALUES (1002, 'Smith', 'Joe', 'C', '4321 West Street', 'Omaha', 'NE', '68111', '987-987-9876', '88', '15'); INSERT INTO EMPLOYEE (ID, LNAME, FNAME, MI, STREET, CITY, STATE, ZIP, PHONE, BID_HOUR_RATE, PAY_HOUR_RATE) VALUES (1003, 'Jones', 'Ann', 'T', '555 S 133nd Street', 'Lincoln', 'NE', '65345', '402-555-5555', '75', '18'); -- SUPPLIER Table -- SUPPLIER_ID CHAR (5) NOT NULL , -- SUPPLIER_NAME VARCHAR2 (40) , -- SUPPLIER_STREET VARCHAR2 (60) , -- SUPPLIER_CITY VARCHAR2 (40) , -- SUPPLIER_STATE VARCHAR2 (2) , -- SUPPLIER_ZIP VARCHAR2 (10) , -- SUPPLIER_PHONE VARCHAR2 (12) , -- SUPPLIER_ACCT_NUM VARCHAR2 (60) , -- SUPPLIER_DISCOUNT VARCHAR2 (3) , -- SUPPLIER_BALANCE FLOAT (8) ,

Mr. Bob May 17, 2011 Page 11 -- SUPPLIER_BALANCE_DUE FLOAT (8) , -- SUPPLIER_PAYMENT_DUE_DATE DATE INSERT INTO SUPPLIER (SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_STREET, SUPPLIER_CITY, SUPPLIER_STATE, SUPPLIER_ZIP, SUPPLIER_PHONE, SUPPLIER_ACCT_NUM, SUPPLIER_DISCOUNT, SUPPLIER_BALANCE, SUPPLIER_BALANCE_DUE, SUPPLIER_PAYMENT_DUE_DATE) VALUES (1001, 'Menards', '708 N 120th St', 'Omaha', 'NE', '68154', '402-498-0485', 'A10005', '20', 1502, 50, '01May2011'); INSERT INTO SUPPLIER (SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_STREET, SUPPLIER_CITY, SUPPLIER_STATE, SUPPLIER_ZIP, SUPPLIER_PHONE, SUPPLIER_ACCT_NUM, SUPPLIER_DISCOUNT, SUPPLIER_BALANCE, SUPPLIER_BALANCE_DUE, SUPPLIER_PAYMENT_DUE_DATE) VALUES (1002, 'Lowes', '7525 Dodge Street', 'Omaha', 'NE', '68154', '402-955-0700', 'L343354443', '15', 220, 100, '03May2011'); INSERT INTO SUPPLIER (SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_STREET, SUPPLIER_CITY, SUPPLIER_STATE, SUPPLIER_ZIP, SUPPLIER_PHONE, SUPPLIER_ACCT_NUM, SUPPLIER_DISCOUNT, SUPPLIER_BALANCE, SUPPLIER_BALANCE_DUE, SUPPLIER_PAYMENT_DUE_DATE) VALUES (1003, 'The Home Depot', '4545 North 72nd Street', 'Omaha', 'NE', '68123', '402-5736393', 'LOWES009112', '18', 0, 0, '04May2011'); INSERT INTO SUPPLIER (SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_STREET, SUPPLIER_CITY, SUPPLIER_STATE, SUPPLIER_ZIP, SUPPLIER_PHONE, SUPPLIER_ACCT_NUM, SUPPLIER_DISCOUNT, SUPPLIER_BALANCE, SUPPLIER_BALANCE_DUE, SUPPLIER_PAYMENT_DUE_DATE) VALUES (1004, 'Menards', '1234 North 72nd Street', 'Omaha', 'NE', '68123', '402-573-5555', 'A11102', '18', 20000, 1000, '20May2011'); -- PRODUCT Table -- PROD_ID CHAR (5) NOT NULL , -- PROD_DESCRIPTION VARCHAR2 (4000) , -- PROD_LIST_PRICE FLOAT (8) , -- SUPPLIER_SUPPLIER_ID CHAR (5) NOT NULL INSERT INTO PRODUCT (PROD_ID, PROD_DESCRIPTION, PROD_LIST_PRICE, SUPPLIER_SUPPLIER_ID) VALUES (1001, '2X4X8', 2.79, '1001'); INSERT INTO PRODUCT (PROD_ID, PROD_DESCRIPTION, PROD_LIST_PRICE, SUPPLIER_SUPPLIER_ID) VALUES (1002, '16D Nails 1000 count', 12.95, '1003'); INSERT INTO PRODUCT (PROD_ID, PROD_DESCRIPTION, PROD_LIST_PRICE, SUPPLIER_SUPPLIER_ID) VALUES (1003, 'Drywall 4X8X.5', 4.99, '1002'); -- BIDLINES Table -- BLABOR_ID CHAR (5 CHAR) NOT NULL , -- BLABOR_HOURS INTEGER ,

Mr. Bob May 17, 2011 Page 12 -- EMPLOYEE_ID CHAR (8 CHAR) NOT NULL , -- BID_BID_ID CHAR (5) NOT NULL INSERT INTO BIDLINES VALUES(1001,'4',1001,1003); INSERT INTO BIDLINES VALUES(1002,'5',1002,1002); INSERT INTO BIDLINES VALUES(1003,'6',1003,1001); -- BIDLABOR Table -- BLINE_ID CHAR (5) NOT NULL , -- BLINE_QTY INTEGER , -- BID_BID_ID CHAR (5) NOT NULL , -- PRODUCT_PROD_ID CHAR (5) NOT NULL INSERT INTO BIDLABOR VALUES(1001,'4',1001,1003); INSERT INTO BIDLABOR VALUES(1002,'4',1002,1002); INSERT INTO BIDLABOR VALUES(1003,'4',1003,1003); -- SUPPLIERINVOICE Table -- SINVOICE_ID CHAR (5) NOT NULL , -- SINVOICE_DATE DATE , -- SINVOICE_AMOUNT FLOAT (8) , -- SINVOICE_DUE_DATE DATE , -- JOB_JOB_ID CHAR (5) NOT NULL , -- SUPPLIER_SUPPLIER_ID CHAR (5) NOT NULL INSERT INTO SUPPLIERINVOICE VALUES(1001,'01Jan2011','130.45','01Feb2010',1001,1001); INSERT INTO SUPPLIERINVOICE VALUES(1002,'20Mar2011','2432.99','20Apr2010',1002,1002); INSERT INTO SUPPLIERINVOICE VALUES(1003,'01Feb2011','500.10','01Mar2010',1003,1003); -- CUSTOMERINVOICE Table -- CINV_ID CHAR (8) NOT NULL , -- CINV_DATE DATE , -- JOB_JOB_ID CHAR (5) NOT NULL INSERT INTO CUSTOMERINVOICE VALUES(1001,'01Jan2011',1001); INSERT INTO CUSTOMERINVOICE VALUES(1002,'01Feb2011',1002); INSERT INTO CUSTOMERINVOICE VALUES(1003,'01Mar2011',1003);

-- CINVLINE Table

Mr. Bob May 17, 2011 Page 13

-----

CINVLINE CHAR (8) NOT NULL , CINVLINE_QTY INTEGER , PRODUCT_PROD_ID CHAR (5) NOT NULL , CUSTOMERINVOICE_CINV_ID CHAR (8) NOT NULL

INSERT INTO CINVLINE VALUES(1001,'2',1001,1001); INSERT INTO CINVLINE VALUES(1002,'1',1002,1002); INSERT INTO CINVLINE VALUES(1003,'4',1003,1003);

Here are the list of queries and results obtained for Uncle Bobs Case Study Project
1. List the names of the customers who were provided bids last month. All Bids: select CUSTOMER.CUST_LNAME, JOB.JOB_TITLE, BID.BID_ID, BID.BID_DATE, SYSDATE from CUSTOMER, JOB, BID where BID.JOB_JOB_ID = JOB.JOB_ID AND CUSTOMER.CUST_ID = JOB.CUSTOMER_CUST_ID;
CU S T _L N AM E
Smith Jones Kinsella Smith

J OB_ T IT L E
Carpet Repair Window Repair Garage Door Replacement Carpet Repair

BID _ ID
1001 1002 1003 1004

BID _ D AT E
11-JUN-10 07-AUG-10 20-MAR-11 01-MAY-11

SY S D AT E
02-MAY-11 02-MAY-11 02-MAY-11 02-MAY-11

Last Month: select CUSTOMER.CUST_LNAME, JOB.JOB_TITLE, BID.BID_ID, BID.BID_DATE, SYSDATE from CUSTOMER, JOB, BID where BID.JOB_JOB_ID = JOB.JOB_ID AND CUSTOMER.CUST_ID = JOB.CUSTOMER_CUST_ID AND BID.BID_DATE > (SYSDATE - 30);
CU S T _L N AM E
Smith

J OB_ T IT L E
Carpet Repair

BID _ ID
1004

BID _ D AT E
01-MAY-11

SY S D AT E
02-MAY-11

2. List the unique names of Bob's suppliers.

All Suppliers:
select supplier_id,supplier_name,supplier_state from supplier;

SUPPLIER_ID 1001 1002

SUPPLIER_NAME Menards Lowes

SUPPLIER_STATE NE NE

Mr. Bob May 17, 2011 Page 14

1003 1004

The Home Depot Lowes

NE NE

Unique Supplier Names:

Select distinct supplier_name from supplier;


SU P P L IE R _ N AM E
Menards Lowes The Home Depot

3. List the names of the suppliers and the total amount owed to any unpaid suppliers. Then write a separate query to display the days past due for each supplier. select SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_BALANCE_DUE from SUPPLIER where SUPPLIER_BALANCE_DUE > 0;
SUPPLIER _ID SUPPLIER _N AME SUPPLIER _B AL AN CE_D UE

1001 1002 1004

Menards Lowes Menards

50 100 1000

select SUPPLIER_ID, SUPPLIER_NAME, SUPPLIER_BALANCE_DUE, ROUND(SYSDATE SUPPLIER_PAYMENT_DUE_DATE, 0) AS "Days Past Due" from SUPPLIER where SUPPLIER_BALANCE_DUE > 0 and ROUND(SYSDATE - SUPPLIER_PAYMENT_DUE_DATE, 0) > 0;
SUPPLIER _ID SUPPLIER _N AME SUPPLIER _B AL AN CE_D UE Da ys Pa st Due

1001 1002

Menards Lowes

50 100

7 5

4. Write an insert statement or series of insert statements if necessary, to insert data into the required tables when a bid is entered.
Bids before insert: select BID_ID, CUST_ID, CUST_LNAME, JOB_ID, JOB_TITLE from BID, CUSTOMER, JOB where JOB_ID = JOB_JOB_ID and CUST_ID = CUSTOMER_CUST_ID;
BID_I D CUST_ ID CUST_ LN AME JOB_ ID JOB_ TI TLE

1001 1002 1003

1001 1002 1003


returned

Smith Jones Kinsella


in 0.00

1001 1002 1003

Carpet Repair Window Repair Garage Door Replacement

3 rows seconds

CSV Export

Mr. Bob May 17, 2011 Page 15

Insert data: INSERT INTO CUSTOMER VALUES (1004,'Jones','Tom','B','500 Oak Street','North South Sioux City','IA','51101','712-888-4444','1500.00'); INSERT INTO JOB VALUES(1004, 'Broken Water Pipe','The scope of this job is to repair the broken cold water pipe under the kitchen sink. All materials and labor included in the bid.', '25May2011', 'CHECK', 1004); INSERT INTO BID VALUES(1004,'08May2011',1004); INSERT INTO BIDLINES VALUES(1004,'2',1004,1001); INSERT INTO BIDLINES VALUES(1005,'1',1004,1002); INSERT INTO BIDLABOR VALUES(1004,'2',1002,1004); select BID_ID, CUST_ID, CUST_LNAME, JOB_ID, JOB_TITLE from BID, CUSTOMER, JOB where JOB_ID = JOB_JOB_ID and CUST_ID = CUSTOMER_CUST_ID;
BID_I D CUST_ ID CUST_ LN AME JOB_ ID JOB_ TI TLE

1001 1002 1003 1004

1001 1002 1003 1004

Smith Jones Kinsella Jones

1001 1002 1003 1004

Carpet Repair Window Repair Garage Door Replacement Broken Water Pipe

4 rows returned in 0.00 seconds

CSV Export

5. Write a delete statement(s) to delete a particular customer from the customer table (make sure to delete any corresponding rows in other tables).

Setup FOREIGN KEY constraint, ON DELETE CASCADE, part of initial database setup scripts: ALTER TABLE BIDLABOR ADD CONSTRAINT BIDLABOR_BID_FK FOREIGN KEY ( BID_BID_ID ) REFERENCES BID ( BID_ID ) ON DELETE CASCADE ; ALTER TABLE BIDLINES ADD CONSTRAINT BIDLINES_BID_FK FOREIGN KEY ( BID_BID_ID ) REFERENCES BID ( BID_ID ) ON DELETE CASCADE ; ALTER TABLE BID ADD CONSTRAINT BID_JOB_FK FOREIGN KEY ( JOB_JOB_ID

Mr. Bob May 17, 2011 Page 16 ) REFERENCES JOB ( JOB_ID ) ON DELETE CASCADE ; ALTER TABLE CINVLINE ADD CONSTRAINT CINVLINE_CUSTOMERINVOICE_FK FOREIGN KEY ( CUSTOMERINVOICE_CINV_ID ) REFERENCES CUSTOMERINVOICE ( CINV_ID ) ON DELETE CASCADE ; ALTER TABLE CUSTOMERINVOICE ADD CONSTRAINT CUSTOMERINVOICE_JOB_FK FOREIGN KEY ( JOB_JOB_ID ) REFERENCES JOB ( JOB_ID ) ON DELETE CASCADE ; ALTER TABLE JOB ADD CONSTRAINT JOB_CUSTOMER_FK FOREIGN KEY ( CUSTOMER_CUST_ID ) REFERENCES CUSTOMER ( CUST_ID ) ON DELETE CASCADE ; ALTER TABLE SUPPLIERINVOICE ADD CONSTRAINT SUPPLIERINVOICE_JOB_FK FOREIGN KEY ( JOB_JOB_ID )

Mr. Bob May 17, 2011 Page 17 REFERENCES JOB ( JOB_ID ) ON DELETE CASCADE ; select CUST_ID, CUST_LNAME, CUST_BALANCE from CUSTOMER; Data in CUSTOMER table before delete:
CUST_ ID CUST_ LN AME CUST_ B AL AN CE

1001 1002 1003

Smith Jones Kinsella

123 0 1500

Delete CUST_ID 1003: DELETE FROM CUSTOMER WHERE CUST_ID='1003';


CUST_ ID CUST_ LN AME CUST_ B AL AN CE

1001 1002
2 rows seconds

Smith Jones
returned in 0.00

123 0
CSV Export

You might also like