STOCK MANAGEMENT - Sample Assignment...STOCK MANAGEMENT Author: com Created Date: 10/24/2018 5:31:20...
Transcript of STOCK MANAGEMENT - Sample Assignment...STOCK MANAGEMENT Author: com Created Date: 10/24/2018 5:31:20...
ENTITY RELATIONSHIP DIAGRAM
id (PK)
purchase_id (FK)
product_id (FK)
quantity
cost_price,
Purchase_order_detaill
supplier_id (PK)
name
phone
address
Supplier
category_id (PK)
category_name
description
Category
purchase_id (PK)
pdate
supplier_id (FK)
Purchase_order
sale_id (PK)
customer_id (FK)
sdate
Sale_order
customer_id (PK)
name
phone
Customer
product_id (PK)
name
category_id (FK)
selling_price
quantity
description
Product
id (PK)
sale_id (FK)
product_id (FK)
quantity
Sale_order_detaill
1..1
0..*
1..1
1..*
1..1
1..*
0..*
1..1
1..*
1..*
0..*
1..1
1..*
1..1
1..1
1..*
receives
has
supplies lists
contains
lists
Belongs to initiates
SQL STATEMENTS TO CREATEALL TABLES AND RELATIONSHIPS
CREATE DATABASE STOCK_MANAGEMENT;
USE STOCK_MANAGEMENT;
CREATE TABLE category ( category_id INT NOT NULL AUTO_INCREMENT, category_name
VARCHAR(100) NOT NULL, description VARCHAR(255), PRIMARY KEY (category_id) );
CREATE TABLE product ( product_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100)
NOT NULL, category_id INT, selling_price NUMERIC(10,2) NOT NULL, quantity INT NOT NULL
DEFAULT 0 CHECK(quantity>=0), description VARCHAR(255), PRIMARY KEY (product_id),
FOREIGN KEY (category_id) REFERENCES category(category_id) );
CREATE TABLE supplier ( supplier_id INT NOT NULL AUTO_INCREMENT, name
VARCHAR(100) NOT NULL, phone NUMERIC(10,0), address VARCHAR(255), PRIMARY KEY
(supplier_id) );
CREATE TABLE purchase_order ( purchase_id INT NOT NULL AUTO_INCREMENT, pdate
DATETIME, supplier_id INT, PRIMARY KEY (purchase_id), FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id) );
CREATE TABLE purchase_order_detail ( id INT NOT NULL AUTO_INCREMENT, purchase_id
INT, product_id INT, quantity INT DEFAULT 1 CHECK(quantity>0), cost_price NUMERIC(10,2)
NOT NULL, Total_cost_price NUMERIC(10,2) NOT NULL, PRIMARY KEY (id), FOREIGN KEY
(purchase_id) REFERENCES purchase_order(purchase_id), FOREIGN KEY (product_id)
REFERENCES product(product_id) );
CREATE TABLE customer ( customer_id INT NOT NULL AUTO_INCREMENT, name
VARCHAR(100) NOT NULL, phone NUMERIC(10,0), PRIMARY KEY (customer_id) );
CREATE TABLE sales_order ( sale_id INT NOT NULL AUTO_INCREMENT, customer_id INT,
sdate DATETIME, PRIMARY KEY (sale_id), FOREIGN KEY (customer_id) REFERENCES
customer(customer_id) );
CREATE TABLE sales_order_detail ( id INT NOT NULL AUTO_INCREMENT, sale_id INT,
product_id INT, quantity INT DEFAULT 1 CHECK(quantity>0), PRIMARY KEY (id), FOREIGN KEY
(sale_id) REFERENCES sales_order(sale_id), FOREIGN KEY (product_id) REFERENCES
product(product_id) );
TRIGGERS TO UPDATE QUANTITY IN PRODUCT TABLE
DELIMITER $$
CREATE TRIGGER purchase_update AFTER INSERT ON purchase_order_detail FOR EACH
ROW
BEGIN
UPDATE product SET quantity=quantity + NEW.quantity where product_id=NEW.product_id;
END$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER sale_update AFTER INSERT ON sales_order_detail FOR EACH ROW
BEGIN
UPDATE product SET quantity=quantity - NEW.quantity where product_id=NEW.product_id;
END$$
DELIMITER ;
SQL STATEMENTS TO INSERT DATA
INSERT INTO category (category_name, description) VALUES ("Pen", "Stationary item");
INSERT INTO category (category_name, description) VALUES ("Pencil", "Stationary item");
INSERT INTO category (category_name, description) VALUES ("Light bulb", "Electronics
item");
INSERT INTO product (name, category_id, selling_price, description) VALUES ("Parker
015",1,5,"Ball pen");
INSERT INTO product (name, category_id, selling_price, description) VALUES ("Perry Cardin
St. Louis",1,3,"Ball pen");
INSERT INTO product (name, category_id, selling_price, description) VALUES ("Philips
5W",3,10,"LED light bulb");
INSERT INTO supplier (name, phone, address) VALUES ("James",7409324567,"Sydney");
INSERT INTO supplier (name, phone, address) VALUES ("Robert",8239324567,"New South
Wales");
INSERT INTO purchase_order (pdate, supplier_id) VALUES (SYSDATE(),1);
INSERT INTO purchase_order (pdate, supplier_id) VALUES (SYSDATE(),2);
INSERT INTO purchase_order_detail (purchase_id, product_id, quantity, cost_price,
total_cost_price) VALUES (1,1,12,4,quantity*cost_price);
INSERT INTO purchase_order_detail (purchase_id, product_id, quantity, cost_price,
total_cost_price) VALUES (1,2,13,2,quantity*cost_price);
INSERT INTO purchase_order_detail (purchase_id, product_id, quantity, cost_price,
total_cost_price) VALUES (2,3,15,9,quantity*cost_price);
INSERT INTO customer (name, phone) VALUES ("Rachel",9994725897);
INSERT INTO customer (name, phone) VALUES ("Stuart",8794754890);
INSERT INTO sales_order (customer_id, sdate) VALUES (1,SYSDATE());
INSERT INTO sales_order (customer_id, sdate) VALUES (2,SYSDATE());
INSERT INTO sales_order (customer_id, sdate) VALUES (1,SYSDATE());
INSERT INTO sales_order_detail (sale_id, product_id, quantity) VALUES (1,1,1);
INSERT INTO sales_order_detail (sale_id, product_id, quantity) VALUES (1,3,1);
INSERT INTO sales_order_detail (sale_id, product_id, quantity) VALUES (2,1,3);
INSERT INTO sales_order_detail (sale_id, product_id, quantity) VALUES (3,3,1);
COMMIT;
STATEMENTS
1. TO DISPLAY ALL TABLES
SHOW TABLES;
SELECT * FROM supplier;
SELECT * FROM purchase_order;
SELECT * FROM purchase_order_detail;
SELECT * FROM product;
SELECT * FROM category;
SELECT * FROM customer;
SELECT * FROM sales_order;
SELECT * FROM sales_order_detail;
2. TO ID2ENTIFY STACK LEVEL FOR ITEMS
SELECT quantity FROM product WHERE product_id=1;
3. TO IDENTIFY CUSTOMER TOTAL EXPENDITURE
SELECT a.customer_id, d.name, sum(c.selling_price*b.quantity) expenditure from
sales_order a, sales_order_detail b, product c, customer d where a.sale_id=b.sale_id and
b.product_id=c.product_id and a.customer_id=a.customer_id and a.customer_id=1;
SQL WORKBENCH SCREENSHOTS
1. TABLE CREATION
2. DATA INSERTION
3. LIST OF TABLES
4. SUPPLIER TABLE DATA
5. PURCHASE_ORDER TABLE DATA
6. PURCHASE_ORDER_DETAIL TABLE DATA
7. PRODUCT TABLE DATA
8. CATEGORY TABLE DATA
9. CUSTOMER TABLE DATA
10. SALES_ORDER TABLE DATA
11. SALES_ORDER_DETAILS TABLE DATA
12. CHECKING STOCK OF AN ITEM
13. TOTAL EXPENDITURE OF A CUSTOMER
MS ACCESS SCREENSHOTS
PURCHASE ORDER
SALE ORDER