0% found this document useful (0 votes)
8 views

Orders Database

Uploaded by

posthemus11
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Orders Database

Uploaded by

posthemus11
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

create table salesman(sid integer,name varchar(20),city varchar(20),commision int,

co
nstraint pkysalesman primary key(sid));

CREATE TABLE customer (


customer_id INTEGER,
cust_name VARCHAR(30),
city VARCHAR(20),
grade INTEGER,
sid INTEGER,
CONSTRAINT pkycustomer PRIMARY KEY (customer_id),
CONSTRAINT fkycustomer FOREIGN KEY (sid) REFERENCES salesman (sid) ON DELETE
CASCADE
);

create table orders(order_no int,purchase_amt int, order_date date,cust_id int,sid


int,constraint pkyorders primary key(order_no,cust_id,sid), constraint fkyorders
foreign key(sid) references salesman(sid) on delete cascade,constraint fkyorder2
foreign key(cust_id) references customer(customer_id) on delete cascade);

INSERT INTO salesman values(1000,'John','Bangalore',25);


INSERT INTO salesman values(2000,'Ravi','Bangalore',20);

INSERT INTO salesman values(3000,'Kumar','Mysore',15);


INSERT INTO salesman values(4000,'Smith','Delhi',30);
INSERT INTO salesman values(5000,'Harsha','Hyderabad',15);

insert into customer values(10,'Pruthi','Bangalore',100,1000);


insert into customer values(12,'Bhaskar','Chennai',300,2000);
insert into customer values(13,'Vivek','Mangalore',400,1000);
insert into customer values(14,'Mamatha','Bangalore',400,2000);
insert into customer values(11,'Shamit','Bangalore',200,1000);

insert into orders values(40,5000,'2017-05-17',10,1000);


insert into orders values(51,450,'2017-01-20',10,1000);
insert into orders values(52,100,'2017-02-24',13,2000);
insert into orders values(53,3500,'2017-04-13',14,3000);
insert into orders values(54,550,'2017-03-05',12,2000);

q1 -

SELECT grade, COUNT(DISTINCT customer_id)


FROM customer
WHERE city = "Bangalore"
GROUP BY grade
HAVING grade > (SELECT AVG(grade) FROM customer WHERE city = "Bangalore");
+-------+-----------------------------+
| grade | COUNT(DISTINCT customer_id) |
+-------+-----------------------------+
| 400 | 1 |
+-------+-----------------------------+
1 row in set (0.00 sec)

q2 -

select s.sid,s.name from salesman s where (select count(*) from custo


mer c where s.sid = c.sid)>1;

+------+------+
| name | sid |
+------+------+
| John | 1000 |
| Ravi | 2000 |
+------+------+
2 rows in set (0.00 sec)

q3-
(SELECT DISTINCT name
FROM customer c, salesman s
WHERE s.sid = c.sid AND s.city = c.city)
UNION
(SELECT DISTINCT name
FROM salesman s, customer c
WHERE s.sid NOT IN (SELECT sid FROM customer)
AND s.city != c.city);

+--------+
| name |
+--------+
| John |
| Ravi |
| Harsha |
| Smith |
| Kumar |
+--------+
5 rows in set (0.00 sec)

q4- CREATE TABLE esaless AS


SELECT o.order_date, s.sid, s.name
FROM salesman s
JOIN orders o ON s.sid = o.sid
WHERE (o.purchase_amt, o.order_date) IN (
SELECT MAX(purchase_amt), order_date
FROM orders
GROUP BY order_date
);

select * from elitesales;


+------------+------+-------+
| order_date | sid | name |
+------------+------+-------+
| 2017-05-17 | 1000 | John |
| 2017-01-20 | 1000 | John |
| 2017-02-24 | 2000 | Ravi |
| 2017-04-13 | 3000 | Kumar |
| 2017-03-05 | 2000 | Ravi |
+------------+------+-------+

q5- delete from salesman where sid =1000;


select * from salesman;

+------+--------+-----------+-----------+
| sid | name | city | commision |
+------+--------+-----------+-----------+
| 2000 | Ravi | Bangalore | 20 |
| 3000 | Kumar | Mysore | 15 |
| 4000 | Smith | Delhi | 30 |
| 5000 | Harsha | Hyderabad | 15 |
+------+--------+-----------+-----------+

create table salesman(sid integer,name varchar(20),city varchar(20),commision int,


co
nstraint pkysalesman primary key(sid));

CREATE TABLE customer (


customer_id INTEGER,
cust_name VARCHAR(30),
city VARCHAR(20),
grade INTEGER,
sid INTEGER,
CONSTRAINT pkycustomer PRIMARY KEY (customer_id),
CONSTRAINT fkycustomer FOREIGN KEY (sid) REFERENCES salesman (sid) ON DELETE
CASCADE
);

create table orders(order_no int,purchase_amt int, order_date date,cust_id int,sid


int,constraint pkyorders primary key(order_no,cust_id,sid), constraint fkyorders
foreign key(sid) references salesman(sid) on delete cascade,constraint fkyorder2
foreign key(cust_id) references customer(customer_id) on delete cascade);

INSERT INTO salesman values(1000,'John','Bangalore',25);


INSERT INTO salesman values(2000,'Ravi','Bangalore',20);

INSERT INTO salesman values(3000,'Kumar','Mysore',15);


INSERT INTO salesman values(4000,'Smith','Delhi',30);
INSERT INTO salesman values(5000,'Harsha','Hyderabad',15);

insert into customer values(10,'Pruthi','Bangalore',100,1000);


insert into customer values(12,'Bhaskar','Chennai',300,2000);
insert into customer values(13,'Vivek','Mangalore',400,1000);
insert into customer values(14,'Mamatha','Bangalore',400,2000);
insert into customer values(11,'Shamit','Bangalore',200,1000);

insert into orders values(40,5000,'2017-05-17',10,1000);


insert into orders values(51,450,'2017-01-20',10,1000);
insert into orders values(52,100,'2017-02-24',13,2000);
insert into orders values(53,3500,'2017-04-13',14,3000);
insert into orders values(54,550,'2017-03-05',12,2000);

q1 -

SELECT grade, COUNT(DISTINCT customer_id)


FROM customer
WHERE city = "Bangalore"
GROUP BY grade
HAVING grade > (SELECT AVG(grade) FROM customer WHERE city = "Bangalore");

+-------+-----------------------------+
| grade | COUNT(DISTINCT customer_id) |
+-------+-----------------------------+
| 400 | 1 |
+-------+-----------------------------+
1 row in set (0.00 sec)

q2 -

select s.sid,s.name from salesman s where (select count(*) from custo


mer c where s.sid = c.sid)>1;

+------+------+
| name | sid |
+------+------+
| John | 1000 |
| Ravi | 2000 |
+------+------+
2 rows in set (0.00 sec)

q3-
(SELECT DISTINCT name
FROM customer c, salesman s
WHERE s.sid = c.sid AND s.city = c.city)
UNION
(SELECT DISTINCT name
FROM salesman s, customer c
WHERE s.sid NOT IN (SELECT sid FROM customer)
AND s.city != c.city);

+--------+
| name |
+--------+
| John |
| Ravi |
| Harsha |
| Smith |
| Kumar |
+--------+
5 rows in set (0.00 sec)

q4- CREATE TABLE esaless AS


SELECT o.order_date, s.sid, s.name
FROM salesman s
JOIN orders o ON s.sid = o.sid
WHERE (o.purchase_amt, o.order_date) IN (
SELECT MAX(purchase_amt), order_date
FROM orders
GROUP BY order_date
);

select * from elitesales;


+------------+------+-------+
| order_date | sid | name |
+------------+------+-------+
| 2017-05-17 | 1000 | John |
| 2017-01-20 | 1000 | John |
| 2017-02-24 | 2000 | Ravi |
| 2017-04-13 | 3000 | Kumar |
| 2017-03-05 | 2000 | Ravi |
+------------+------+-------+

q5- delete from salesman where sid =1000;


select * from salesman;

+------+--------+-----------+-----------+
| sid | name | city | commision |
+------+--------+-----------+-----------+
| 2000 | Ravi | Bangalore | 20 |
| 3000 | Kumar | Mysore | 15 |
| 4000 | Smith | Delhi | 30 |
| 5000 | Harsha | Hyderabad | 15 |
+------+--------+-----------+-----------+

You might also like