



















Preview text:
lOMoAR cPSD| 58675420
Cho lược đồ cơ sở dữ liệu sau:
KHACHHANG ( MAK H(char4) , HOTEN(varchar2(40), DCHI(varchar2(50), SODT(varchar2(20),
NGSINH(date), NGDK(date), DOANHSO(number(10)
NHANVIEN ( MAN V, HOTEN, NGVL, SODT)
SANPHAM ( MAS P,TENSP, DVT, NUOCSX, GIA)
HOADON ( S O H D, NGHD, MAKH, MANV, TRIGIA)
CTHD ( S O H D ,M A S P,SL)
KHACHHANG ( MAK H, HOTEN, DCHI, SODT, NGSINH, NGDK, DOANHSO)
Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính:
mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá
các hóa đơn của khách hàng thành viên này). Name Null? Type
----------------------------------------- -------- ---------------------------- MAKH NOT NULL CHAR2(4) HOTEN VARCHAR2(40) DCHI VARCHAR2(50) SODT VARCHAR2(20) NGAYSINH DATE NGDK DATE DOANHSO NUMBER(10) SQL> create table khachhang( makh char(4 byte) not null, hoten varchar2(40 byte), dchi varchar2(50 byte), sodt varchar2(20 byte), ngaysinh date, ngdk date, doanhso number(10,0),
constraint pk_kh primary key(makh));
NHANVIEN ( MAN V, HOTEN, NGVL, SODT)
Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, mỗi nhân
viên phân biệt với nhau bằng mã nhân viên. Name Null? Type
----------------------------------------- -------- --------------------------- MANV NOT NULL CHAR(4) lOMoAR cPSD| 58675420 HOTEN VARCHAR2(40) SODT VARCHAR2(20) NGVL DATE
SQL> create table nhanvien( manv char(4 byte) not null, hoten varchar2(40 byte), sodt varchar2(20 byte), ngvl date,
constraint pk_nv primary key(manv));
alter table nhanvien add constraint pk_nv primary key (manv);
SANPHAM ( MAS P,TENSP, DVT, NUOCSX, GIA)
Tân từ: Mỗi phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán. Name Null? Type
----------------------------------------- -------- ---------------------------- MASP NOT NULL CHAR(4) TENSP VARCHAR2(40) DVT VARCHAR2(20) NUOCSX VARCHAR2(40) GIA NUMBER(10) SQL> CREATE TABLE SANPHAM( MASP char(4) not null, TENSP varchar2(40 byte), DVT varchar(20 byte), NUOCSX varchar(40 byte), GIA number (10,0),
constraint pk_sp primary key(MASP));
alter table sanpham add constraint pk_sp primary key (masp); lOMoAR cPSD| 58675420
HOADON ( S O H D, NGHD, MAKH, MANV, TRIGIA)
Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn,
ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là khách hàng thành viên. Name Null? Type
----------------------------------------- -------- ---------------------------- SOHD NOT NULL NUMBER(38) NGHD DATE MAKH CHAR(4) MANV CHAR(4) TRIGIA NUMBER(10) SQL> CREATE TABLE HOADON( SOHD number(38,0) not null, NGHD date, MAKH char(4 byte), MANV char(4 byte),
TRIGIA number (10,0), constraint pk_hd primary key(SOHD));
alter table hoadon add constraint pk_hd primary key (sohd);
CTHD ( S O H D ,M A S P,SL)
Tân từ: Diễn giải chi tiết trong mỗi hóa đơn gồm có những sản phẩm gì với số lượng là bao nhiêu.
(sơ đồ thể hiện mối quan hệ giữa các bảng) Name Null? Type
----------------------------------------- -------- ---------------------------- SOHD NOT NULL NUMBER(38) MASP NOT NULL CHAR(4) SL NUMBER(38) SQL> CREATE TABLE CTHD( SOHD number(38,0) not null, MASP char(4 byte), SL number(38,0),
constraint pk_cthd primary key(SOHD,MASP)); lOMoAR cPSD| 58675420
alter table cthd add constraint pk_cthd primary key (sohd); alter
table cthd add constraint pk_cthd primary key (masp);
KHÓA NGOẠI CHO BẢNG HOADON
ALTER TABLE HOADON ADD CONSTRAINT fk01_HD FOREIGN KEY(MAKH) REFERENCES KHACHHANG(MAKH);
ALTER TABLE HOADON ADD CONSTRAINT fk02_HD FOREIGN KEY(MANV) REFERENCES NHANVIEN(MANV); KHÓA NGOẠI CHO BẢNG CTHD
ALTER TABLE CTHD ADD CONSTRAINT fk01_CTHD FOREIGN KEY(SOHD) REFERENCES HOADON(SOHD);
ALTER TABLE CTHD ADD CONSTRAINT fk02_CTHD FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP); lOMoAR cPSD| 58675420
PHẦN I: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU
C â u 1: Tạo các quan hệ và khai báo các khóa chính, khóa ngoại của quan hệ.
Câu 2: Thêm thuộc tính GHICHU có kiểu dữ liệu varchar2(20) cho quan hệ SANPHAM.
Câu 3: Thêm thuộc tính LOAIKH có kiểu dữ liệu là tinyint cho quan hệ KHACHHANG.
Câu 4: Sửa kiểu dữ liệu của thuộc tính GHICHU trong quan hệ SANPHAM thành varchar2(100).
PHẦN II: NGÔN NGỮ THAO TÁC DỮ LIỆU
Câu 1: Nhập dữ liệu cho các quan hệ trên
NHẬP DỮ LIỆU CHO KHÁCH HÀNG Name Null? Type lOMoAR cPSD| 58675420
----------------------------------------- -------- ---------------------------- MAKH CHAR2(4) NOT NULL HOTEN V ARCH AR2(40) DCHI V ARCH AR2(50) SODT V ARCH AR2(20) NGAYSINH DATE NGDK DA TE DOANHSO NUMBE R(10)
MAKH HOTEN DCHI SODT NGAYSINH NGDK DOANHSO KH01 Nguyen 731 8823451 22-OCT-60 13060000 Van A Tran Hung Dao, Q5, TpHCM KH02 Tran Ngoc 23/5 Han Nguyen Trai, Q5, TpHCM KH03 KH04 KH05 KH06 KH07 KH08 KH09 KH10
KH01 Nguyen Van A 731 Tran Hung Dao, Q5, TpHCM 8823451 22-OCT-60 22-JUL-06 13060000
KH02 Tran Ngoc Han 23/5 Nguyen Trai, Q5, TpHCM 908256478 03-APR-74 30-JUL-06 280000
KH03 Tran Ngoc Linh 45 Nguyen Canh Chan, Q1, TpHCM 938776266 12-JUN-80 08-MAY-06 3860000
KH04 Tran Minh Long 50/34 Le Dai Hanh, Q10, TpHCM 917325476 09-MAR-65 10-FEB-06 250000
KH05 Le Nhat Minh 34 Truong Dinh, Q3, TpHCM 917325476 09-MAR-50 28-OCT-06 210000
KH06 Le Hoai Thuong 227 Nguyen Van Cu, Q5, TpHCM 8631738 31-DEC-81 24-NOV-06 915000
KH07 Nguyen Van Tam 32/3 Tran Binh Trong, Q5, TpHCM 916783565 06-APR-71 12-JAN-06 12500
KH08 Phan Thi Thanh 45/2 An Duong Vuong, Q5,TpHCM 938435756 10-JAN-71 13-DEC-06 365000
KH09 Le Ha Vinh 873 Le Hong Phong, Q5,TpHCM 8654763 03-SEP-79 14-JAN-07 70000
KH10 Ha Duy Lap 34/34B Nguyen Trai, Q1,TpHCM 8768904 02-MAY-83 16-JAN-07 67500
SQL> insert into khachhang values('KH01','Nguyen Van A','731 Tran Hung Dao, Q5, lOMoAR cPSD| 58675420
TpHCM','8823451', to_date('22/10/1960','dd/mm/yyyy'), to_date('22/07/2006', 'dd/mm/yyyy'),13060000);
SQL> insert into khachhang values('KH02','Tran Ngoc Han','23/5 Nguyen Trai, Q5,
TpHCM','908256478', to_date('03/04/1974','dd/mm/yyyy'), to_date('30/07/2006', 'dd/mm/yyyy'), 280000);
SQL> insert into khachhang values('KH03','Tran Ngoc Linh','45 Nguyen Canh Chan, Q1,
TpHCM','938776266',to_date('12/06/1980',’dd/mm/yyyy’),to_date('08/05/2006',’dd/mm/ yyyy’),3860000);
SQL> insert into khachhang values('KH04','Tran Minh Long','50/34 Le Dai Hanh, Q10,
TpHCM','917325476',to_date('09/03/1965',’dd/mm/yyyy’),to_date('10/02/2006',’dd/mm/ yyyy’),250000);
SQL> insert into khachhang values('KH05','Le Nhat Minh', '34 Truong Dinh, Q3,
TpHCM','917325476',to_date('09/03/1950',’dd/mm/yyyy’),to_date('28/10/2006',’dd/mm/ yyyy’),210000);
SQL> insert into khachhang values('KH06','Le Hoai Thuong', '227 Nguyen Van Cu, Q5,
TpHCM','8631738',to_date('31/12/1981',’dd/mm/yyyy’),to_date('24/11/2006',’dd/mm/ yyyy’),915000);
SQL> insert into khachhang values('KH07','Nguyen Van Tam', '32/3 Tran Binh Trong, Q5,
TpHCM','916783565',to_date('06/04/1971',’dd/mm/yyyy’),to_date('12/01/2006',’dd/mm/yyyy’), 12500);
SQL> insert into khachhang values('KH08', 'Phan Thi Thanh ', '45/2 An Duong Vuong,
Q5,TpHCM','938435756',to_date('10/01/1971',’dd/mm/yyyy’),to_date('13/12/2006',’dd/mm/yyyy’), 365000);
SQL> insert into khachhang values('KH09', 'Le Ha Vinh ', '873 Le Hong Phong,
Q5,TpHCM','8654763',to_date('03/09/1979',’dd/mm/yyyy’),to_date('14/01/2007',’dd/mm/yyyy’), 70000);
SQL> insert into khachhang values('KH10', 'Ha Duy Lap', '34/34B Nguyen Trai,
Q1,TpHCM','8768904',to_date('02/05/1983',’dd/mm/yyyy’),to_date('16/01/2007',’dd/mm/yyyy’), 67500);
NHẬP DỮ LIỆU CHO NHÂN VIÊN Name Null? Type lOMoAR cPSD| 58675420
----------------------------------------- -------- --------------------------- MANV NOT NULL CHAR(4) HOTEN VARCHAR2(40) SODT VARCHAR2(20) NGVL DATE MANV HOTEN SODT NGVL
---- ---------------------------------------- -------------------- --------- NV01
Nguyen Nhu Nhut 927345678 13-04-2006 NV02
Le Thi Phi Yen 987567390 21-04-2006 NV03
Tran Van B 997047382 27-04-2006 NV04
Thanh Tuan 913758498 24-06-2006 NV05
Nguyen Thi Truc Thanh 918590387 20-07-2006
SQL> insert into nhanvien values('NV01','Nguyen Nhu Nhut','927345678',
to_date('13/04/2006','dd/mm/yyyy'));
SQL> insert into nhanvien values('NV02','Le Thi Phi Yen','987567390',
to_date('21/04/2006','dd/mm/yyyy'));
SQL> insert into nhanvien values('NV03','Tran Van B','997047382',
to_date('27/04/2006','dd/mm/yyyy'));
SQL> insert into nhanvien values('NV04', 'Ngo Thanh Tuan ', '913758498',
to_date('24/06/2006','dd/mm/yyyy'));
SQL> insert into nhanvien values('NV05', 'Nguyen Thi Truc Thanh ', '918590387',
to_date('20/07/2006','dd/mm/yyyy'));
NHẬP DỮ LIỆU CHO SẢN PHẨM MASP TENSP DVT NUOCSX GIA
---- ---------------------------------------- -------------------- ---------------------------------------- ----------
BC01 But chi cay Singapore 3000
BC02 But chi cay Singapore 5000
BC03 But chi cay Viet Nam 3500
BC04 But chi hop Viet Nam 30000 BB01 But bi cay Viet Nam 5000
BB02 But bi cay Trung Quoc 7000
BB03 But bi hop Thai Lan 100000
TV01 Tap 100 giay mong quyen Trung Quoc 2500 lOMoAR cPSD| 58675420
TV02 Tap 200 giay mong quyen Trung Quoc 4500
TV03 Tap 100 giay tot quyen Viet Nam 3000
TV04 Tap 200 giay tot quyen Viet Nam 5500
MASP TENSP DVT NUOCSX GIA
---- ---------------------------------------- -------------------- ---------------------------------------- ----------
TV05 Tap 100 trang chuc Viet Nam 23000
TV06 Tap 200 trang chuc Viet Nam 53000
TV07 Tap 100 trang chuc Trung Quoc 34000
ST01 So tay 500 trang quyen Trung Quoc 40000
ST02 So tay loai 1 quyen Viet Nam 55000
ST03 So tay loai 2 quyen Viet Nam 51000
ST04 So tay quyen Thai Lan 55000
ST05 So tay mong quyen Thai Lan 20000
ST06 Phan viet bang hop Viet Nam 5000
ST07 Phan khong bui hop Viet Nam 7000
ST08 Bong bang cai Viet Nam 1000
MASP TENSP DVT NUOCSX GIA
---- ---------------------------------------- -------------------- ---------------------------------------- ----------
ST09 But long cay Viet Nam 5000
ST10 But long cay Trung Quoc 7000
insert into sanpham values('BC01','But chi','cay','Singapore',3000);
insert into sanpham values('BC02','But chi','cay','Singapore',5000);
insert into sanpham values('BC03','But chi','cay','Viet Nam',3500);
insert into sanpham values('BC04','But chi','hop','Viet Nam',30000);
insert into sanpham values('BB01','But bi','cay','Viet Nam',5000);
insert into sanpham values('BB02','But bi','cay','Trung Quoc',7000);
insert into sanpham values('BB03','But bi','hop','Thai Lan',100000);
insert into sanpham values('TV01','Tap 100 giay mong','quyen','Trung Quoc',2500);
insert into sanpham values('TV02','Tap 200 giay mong','quyen','Trung Quoc',4500);
insert into sanpham values('TV03','Tap 100 giay tot','quyen','Viet Nam',3000);
insert into sanpham values('TV04','Tap 200 giay tot','quyen','Viet Nam',5500);
insert into sanpham values('TV05','Tap 100 trang','chuc','Viet Nam',23000);
insert into sanpham values('TV06','Tap 200 trang','chuc','Viet Nam',53000);
insert into sanpham values('TV07','Tap 100 trang','chuc','Trung Quoc',34000); lOMoAR cPSD| 58675420
insert into sanpham values('ST01','So tay 500 trang','quyen','Trung Quoc',40000);
insert into sanpham values('ST02','So tay loai 1','quyen','Viet Nam',55000);
insert into sanpham values('ST03','So tay loai 2','quyen','Viet Nam',51000);
insert into sanpham values('ST04','So tay','quyen','Thai Lan',55000);
insert into sanpham values('ST05','So tay mong','quyen','Thai Lan',20000);
insert into sanpham values('ST06','Phan viet bang','hop','Viet Nam',5000);
insert into sanpham values('ST07','Phan khong bui','hop','Viet Nam',7000);
insert into sanpham values('ST08','Bong bang','cai','Viet Nam',1000);
insert into sanpham values('ST09','But long','cay','Viet Nam',5000);
insert into sanpham values('ST10','But long','cay','Trung Quoc',7000);
NHẬP DỮ LIỆU CHO HÓA ĐƠN
insert into hoadon values(1001, to_date('23/07/2006','dd/mm/yyyy'),'KH01','NV01',320000);
insert into hoadon values(1002, to_date('12/08/2006','dd/mm/yyyy'),'KH01','NV02',840000);
insert into hoadon values(1003, to_date('23/08/2006','dd/mm/yyyy'),'KH02','NV01',100000);
insert into hoadon values(1004, to_date('01/09/2006','dd/mm/yyyy'),'KH02','NV01',180000);
insert into hoadon values(1005,
to_date('20/10/2006','dd/mm/yyyy'),'KH01','NV02',3800000); insert into hoadon
values(1006, to_date('16/10/2006','dd/mm/yyyy'),'KH01','NV03',2430000); insert into
hoadon values(1007, to_date('28/10/2006','dd/mm/yyyy'),'KH03','NV03',510000); insert into
hoadon values(1008, to_date('28/10/2006','dd/mm/yyyy'),'KH01','NV03',440000); insert into
hoadon values(1009, to_date('28/10/2006','dd/mm/yyyy'),'KH03','NV04',200000); insert into
hoadon values(1010, to_date('01/11/2006','dd/mm/yyyy'),'KH01','NV01',5200000); insert into
hoadon values(1011, to_date('04/11/2006','dd/mm/yyyy'),'KH04','NV03',250000); insert into
hoadon values(1012, to_date('30/11/2006','dd/mm/yyyy'),'KH05','NV03',21000); insert into
hoadon values(1013, to_date('12/12/2006','dd/mm/yyyy'),'KH06','NV01',5000); insert into
hoadon values(1014, to_date('31/12/2006','dd/mm/yyyy'),'KH03','NV02',3150000); insert
into hoadon values(1015, to_date('01/01/2007','dd/mm/yyyy'),'KH06','NV01',910000); insert
into hoadon values(1016, to_date('01/01/2007','dd/mm/yyyy'),'KH07','NV02',12500); insert
into hoadon values(1017, to_date('02/01/2007','dd/mm/yyyy'),'KH08','NV03',35000); insert
into hoadon values(1018, to_date('13/01/2007','dd/mm/yyyy'),'KH08','NV03',330000); insert
into hoadon values(1019, to_date('13/01/2007','dd/mm/yyyy'),'KH01','NV03',30000); insert
into hoadon values(1020, to_date('14/01/2007','dd/mm/yyyy'),'KH09','NV04',70000); insert
into hoadon values(1021, to_date('16/01/2007','dd/mm/yyyy'),'KH10','NV03',67500); insert
into hoadon values(1022, to_date ('16/01/2007','dd/mm/yyyy'),Null,'NV03',7000); insert into
hoadon values(1023, to_date('17/01/2007','dd/mm/yyyy'),Null,'NV01',330000);
NHẬP DỮ LIỆU CHI TIẾT HÓA ĐƠN insert into cthd values(1001,'TV02',10); lOMoAR cPSD| 58675420 insert into cthd values(1001,'ST01',5); insert into cthd values(1001,'BC01',5); insert into cthd values(1001,'BC02',10); insert into cthd values(1001,'ST08',10); insert into cthd values(1002,'BC04',20); insert into cthd values(1002,'BB01',20); insert into cthd values(1002,'BB02',20); insert into cthd values(1003,'BB03',10); insert into cthd values(1004,'TV01',20); insert into cthd values(1004,'TV02',10); insert into cthd values(1004,'TV03',10); insert into cthd values(1004,'TV04',10); insert into cthd values(1005,'TV05',50); insert into cthd values(1005,'TV06',50); insert into cthd values(1006,'TV07',20); insert into cthd values(1006,'ST01',30); insert into cthd values(1006,'ST02',10); insert into cthd values(1007,'ST03',10); insert into cthd values(1008,'ST04',8); insert into cthd values(1009,'ST05',10); insert into cthd values(1010,'TV07',50); insert into cthd values(1010,'ST07',50); insert into cthd lOMoAR cPSD| 58675420 values(1010,'ST08',100); insert into cthd values(1010,'ST04',50); insert into cthd values(1010,'TV03',100); insert into cthd values(1011,'ST06',50); insert into cthd values(1012,'ST07',3); insert into cthd values(1013,'ST08',5); insert into cthd values(1014,'BC02',80); insert into cthd values(1014,'BB02',100); insert into cthd values(1014,'BC04',60); insert into cthd values(1014,'BB01',50); insert into cthd values(1015,'BB02',30); insert into cthd values(1015,'BB03',7); insert into cthd values(1016,'TV01',5); insert into cthd values(1017,'TV02',1); insert into cthd values(1017,'TV03',1); insert into cthd values(1017,'TV04',5); insert into cthd values(1018,'ST04',6); insert into cthd values(1019,'ST05',1); insert into cthd values(1019,'ST06',2); insert into cthd values(1020,'ST07',10); insert into cthd values(1021,'ST08',5); insert into cthd values(1021,'TV01',7); insert into cthd values(1021,'TV02',10); lOMoAR cPSD| 58675420 insert into cthd values(1022,'ST07',1); insert into cthd values(1023,'ST04',6);
PHẦN III: NGÔN NGỮ TRUY VẤN DỮ LIỆU
Câu 1: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất.
Câu 2: In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”.
Câu 3: In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.
Câu 4: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000.
Câu 5: In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ 30.000 đến 40.000.
Câu 6: In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.
C â u 7: In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá
của hóa đơn (giảm dần).
Câu 8: In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. Câu 9:
In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006.
Câu 10: In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006.
--1. In ra danh sách các sa@n phẩ@m (MASP,TENSP) do “Trung Quoc” sa@n xuẩEt. SELECT MASP, TENSP FROM SANPHAM WHERE NUOCSX = 'TRUNG QUOC'
--2. In ra danh sách các sa@n phẩ@m (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”. SELECT MASP, TENSP FROM SANPHAM WHERE DVT IN('CAY', 'QUYEN')
--3. In ra danh sách các sa@n phẩ@m (MASP,TENSP) có mã sa@n phẩ@m bắEt đẩRu là “B” và kếEt thúc là “01”. SELECT MASP, TENSP FROM SANPHAM WHERE MASP LIKE'B%01'
--4. In ra danh sách các sa@n phẩ@m (MASP,TENSP) do “Trung QuốEc” sa@n xuẩEt có giá từ 30.000 đếEn 40.000. SELECT MASP,TENSP,NUOCSX FROM SANPHAM WHERE NUOCSX = 'TRUNG QUOC'
AND GIA BETWEEN 30000 AND 40000
--5. In ra danh sách các sa@n phẩ@m (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sa@n xuẩEt
có giá từ 30.000 đếEn 40.000. SELECT MASP, TENSP, NUOCSX FROM SANPHAM lOMoAR cPSD| 58675420
WHERE (NUOCSX = 'TRUNG QUOC' OR NUOCSX = 'THAI LAN') AND GIA BETWEEN 30000 AND 40000
--6. In ra các sốE hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007. SELECT SOHD, TRIGIA FROM HOADON
WHERE NGHD >= '1/1/2007' AND NGHD <= '1/2/2007'
--7. In ra các sốE hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắEp xếEp theo ngày (tắng dẩRn)
và trị giá cu@a hóa đơn (gia@m dẩRn). SELECT SOHD, TRIGIA FROM HOADON
WHERE MONTH(NGHD) = 1 AND YEAR(NGHD) = 2007
ORDER BY NGHD ASC, TRIGIA DESC
--8. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. SELECT K.MAKH, HOTEN
FROM KHACHHANG K INNER JOIN HOADON H ON K.MAKH = H.MAKH WHERE NGHD = '1/1/2007'
--9. In ra sốE hóa đơn, trị giá các hóa đơn do nhẩn viến có tến “Nguyen Van B” lập trong ngày 28/10/2006. SELECT SOHD, TRIGIA
FROM HOADON H INNER JOIN NHANVIEN N ON H.MANV = N.MANV WHERE NGHD = '10/28/2006' AND HOTEN = 'NGUYEN VAN B'
--10. In ra danh sách các sa@n phẩ@m (MASP,TENSP) được khách hàng có tến “Nguyen Van A” mua trong tháng 10/2006. SELECT DISTINCT S.MASP, TENSP
FROM SANPHAM S INNER JOIN CTHD C ON S.MASP = C.MASP AND EXISTS(SELECT *
FROM CTHD C INNER JOIN HOADON H ON C.SOHD = H.SOHD
AND MONTH(NGHD) = 10 AND YEAR(NGHD) = 2006 AND MAKH IN(SELECT H.MAKH
FROM HOADON H INNER JOIN KHACHHANG K ON H.MAKH = K.MAKH
WHERE HOTEN = 'NGUYEN VAN A') AND S.MASP = C.MASP)
--11. Tìm các sốE hóa đơn đã mua sa@n phẩ@m có mã sốE “BB01” hoặc “BB02”. SELECT SOHD FROM CTHD
WHERE MASP IN ('BB01', 'BB02')
--12. Tìm các sốE hóa đơn đã mua sa@n phẩ@m có mã sốE “BB01” hoặc “BB02”, mốbi sa@n phẩ@m mua
với sốE lượng từ 10 đếEn 20. SELECT SOHD FROM CTHD
WHERE MASP IN ('BB01', 'BB02') AND SL BETWEEN 10 AND 20 lOMoAR cPSD| 58675420
--13. Tìm các sốE hóa đơn mua cùng lúc 2 sa@n phẩ@m có mã sốE “BB01” và “BB02”, mốbi sa@n phẩ@m
mua với sốE lượng từ 10 đếEn 20. SELECT SOHD FROM CTHD A WHERE A.MASP = 'BB01' AND SL BETWEEN 10 AND 20 AND EXISTS(SELECT * FROM CTHD B WHERE B.MASP = 'BB02' AND SL BETWEEN 10 AND 20 AND A.SOHD = B.SOHD)
--14. In ra danh sách các sa@n phẩ@m (MASP,TENSP) do “Trung Quoc” sa@n xuẩEt hoặc các sa@n
phẩ@m được bán ra trong ngày 1/1/2007. SELECT DISTINCT S.MASP, TENSP
FROM SANPHAM S INNER JOIN CTHD C ON S.MASP = C.MASP WHERE NUOCSX = 'TRUNG QUOC'
AND C.SOHD IN(SELECT DISTINCT C2.SOHD
FROM CTHD C2 INNER JOIN HOADON H ON C2.SOHD = H.SOHD WHERE NGHD ='1/1/2007')
--15. In ra danh sách các sa@n phẩ@m (MASP,TENSP) khống bán được. SELECT S.MASP, TENSP FROM SANPHAM S WHERE NOT EXISTS(SELECT *
FROM SANPHAM S2 INNER JOIN CTHD C ON S2.MASP = C.MASP AND S2.MASP = S.MASP)
--16. In ra danh sách các sa@n phẩ@m (MASP,TENSP) khống bán được trong nắm 2006. SELECT S.MASP, TENSP FROM SANPHAM S
WHERE S.MASP NOT IN(SELECT C.MASP
FROM CTHD C INNER JOIN HOADON H ON C.SOHD = H.SOHD WHERE YEAR(NGHD) = 2006)
--17. In ra danh sách các sa@n phẩ@m (MASP,TENSP) do “Trung Quoc” sa@n xuẩEt khống bán được trong nắm 2006. SELECT S.MASP, TENSP FROM SANPHAM S
WHERE NUOCSX = 'TRUNG QUOC' AND S.MASP NOT IN(SELECT C.MASP
FROM CTHD C INNER JOIN HOADON H ON C.SOHD = H.SOHD WHERE YEAR(NGHD) = 2006)
--18. Tìm sốE hóa đơn đã mua tẩEt ca@ các sa@n phẩ@m do Singapore sa@n xuẩEt. lOMoAR cPSD| 58675420 SELECT H.SOHD FROM HOADON H WHERE NOT EXISTS(SELECT * FROM SANPHAM S WHERE NUOCSX = 'SINGAPORE' AND NOT EXISTS(SELECT * FROM CTHD C WHERE C.SOHD = H.SOHD AND C.MASP = S.MASP)) SELECT DISTINCT CT.SOHD FROM CTHD CT WHERE NOT EXISTS(SELECT * FROM SANPHAM S WHERE NUOCSX = 'SINGAPORE' AND NOT EXISTS(SELECT * FROM CTHD C WHERE C.SOHD = CT.SOHD AND C.MASP = S.MASP))
--19. Tìm sốE hóa đơn trong nắm 2006 đã mua ít nhẩEt tẩEt ca@ các sa@n phẩ@m do Singapore sa@n xuẩEt. SELECT H.SOHD FROM HOADON H
WHERE YEAR(NGHD) = 2006 AND NOT EXISTS(SELECT * FROM SANPHAM S WHERE NUOCSX = 'SINGAPORE' AND NOT EXISTS(SELECT * FROM CTHD C WHERE C.SOHD = H.SOHD AND C.MASP = S.MASP))
--20. Có bao nhiếu hóa đơn khống pha@i cu@a khách hàng đắng ký thành viến mua? SELECT COUNT(*) FROM HOADON H WHERE MAKH NOT IN(SELECT MAKH FROM KHACHHANG K WHERE K.MAKH = H.MAKH)
--21. Có bao nhiếu sa@n phẩ@m khác nhau được bán ra trong nắm 2006. SELECT COUNT(DISTINCT MASP)
FROM CTHD C INNER JOIN HOADON H ON C.SOHD = H.SOHD WHERE YEAR(NGHD) = 2006
--22. Cho biếEt trị giá hóa đơn cao nhẩEt, thẩEp nhẩEt là bao nhiếu ? lOMoAR cPSD| 58675420
SELECT MAX(TRIGIA) AS MAX, MIN(TRIGIA) AS MIN FROM HOADON
--23. Trị giá trung bình cu@a tẩEt ca@ các hóa đơn được bán ra trong nắm 2006 là bao nhiếu? SELECT AVG(TRIGIA) TB FROM HOADON
--24. Tính doanh thu bán hàng trong nắm 2006.
SELECT SUM(TRIGIA) AS DOANHTHU FROM HOADON WHERE YEAR(NGHD) = 2006
--25. Tìm sốE hóa đơn có trị giá cao nhẩEt trong nắm 2006. SELECT SOHD FROM HOADON
WHERE TRIGIA = (SELECT MAX(TRIGIA) FROM HOADON)
--26. Tìm họ tến khách hàng đã mua hóa đơn có trị giá cao nhẩEt trong nắm 2006. SELECT HOTEN
FROM KHACHHANG K INNER JOIN HOADON H ON K.MAKH = H.MAKH AND SOHD = (SELECT SOHD FROM HOADON
WHERE TRIGIA = (SELECT MAX(TRIGIA) FROM HOADON))
--27. In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh sốE cao nhẩEt. SELECT TOP 3 MAKH, HOTEN FROM KHACHHANG ORDER BY DOANHSO DESC
--28. In ra danh sách các sa@n phẩ@m (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhẩEt. SELECT MASP, TENSP FROM SANPHAM
WHERE GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM ORDER BY GIA DESC)
--29. In ra danh sách các sa@n phẩ@m (MASP, TENSP) do “Thai Lan” sa@n xuẩEt có giá bằng 1 trong
3 mức giá cao nhẩEt (cu@a tẩEt ca@ các sa@n phẩ@m). SELECT MASP, TENSP FROM SANPHAM
WHERE NUOCSX = 'THAI LAN' AND GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM ORDER BY GIA DESC)
--30. In ra danh sách các sa@n phẩ@m (MASP, TENSP) do “Trung Quoc” sa@n xuẩEt có giá bằng 1
trong 3 mức giá cao nhẩEt (cu@a sa@n phẩ@m do “Trung Quoc” sa@n xuẩEt). SELECT MASP, TENSP FROM SANPHAM
WHERE NUOCSX = 'TRUNG QUOC' AND GIA IN (SELECT DISTINCT TOP 3 GIA FROM SANPHAM lOMoAR cPSD| 58675420 ORDER BY GIA DESC)
--31. * In ra danh sách 3 khách hàng có doanh sốE cao nhẩEt (sắEp xếEp theo kiế@u xếEp hạng). SELECT TOP 3 MAKH, HOTEN FROM KHACHHANG ORDER BY DOANHSO DESC
--32. Tính tố@ng sốE sa@n phẩ@m do “Trung Quoc” sa@n xuẩEt. SELECT COUNT(DISTINCT MASP) FROM SANPHAM WHERE NUOCSX = 'TRUNG QUOC'
--33. Tính tố@ng sốE sa@n phẩ@m cu@a từng nước sa@n xuẩEt.
SELECT NUOCSX, COUNT(DISTINCT MASP) AS TONGSOSANPHAM FROM SANPHAM GROUP BY NUOCSX
--34. Với từng nước sa@n xuẩEt, tìm giá bán cao nhẩEt, thẩEp nhẩEt, trung bình cu@a các sa@n phẩ@m.
SELECT NUOCSX, MAX(GIA) AS MAX, MIN(GIA) AS MIN, AVG(GIA) AS AVG FROM SANPHAM GROUP BY NUOCSX
--35. Tính doanh thu bán hàng mốbi ngày.
SELECT NGHD, SUM(TRIGIA) AS DOANHTHU FROM HOADON GROUP BY NGHD
--36. Tính tố@ng sốE lượng cu@a từng sa@n phẩ@m bán ra trong tháng 10/2006.
SELECT MASP, COUNT(DISTINCT MASP) AS TONGSO FROM SANPHAM WHERE MASP IN(SELECT MASP
FROM CTHD C INNER JOIN HOADON H ON C.SOHD = H.SOHD
WHERE MONTH(NGHD) = 10 AND YEAR(NGHD) = 2006) GROUP BY MASP
--37. Tính doanh thu bán hàng cu@a từng tháng trong nắm 2006.
SELECT MONTH(NGHD) AS THANG, SUM(TRIGIA) AS DOANHTHU FROM HOADON WHERE YEAR(NGHD) = 2006 GROUP BY MONTH(NGHD)
--38. Tìm hóa đơn có mua ít nhẩEt 4 sa@n phẩ@m khác nhau. SELECT * FROM HOADON WHERE SOHD IN(SELECT SOHD FROM CTHD WHERE SL >= 4)
--39. Tìm hóa đơn có mua 3 sa@n phẩ@m do “Viet Nam” sa@n xuẩEt (3 sa@n phẩ@m khác nhau). SELECT * FROM HOADON WHERE SOHD IN(SELECT SOHD lOMoAR cPSD| 58675420
FROM CTHD C INNER JOIN SANPHAM S ON C.MASP = S.MASP
WHERE NUOCSX = 'VIET NAM' AND SL >= 3)
--40. Tìm khách hàng (MAKH, HOTEN) có sốE lẩRn mua hàng nhiếRu nhẩEt. SELECT MAKH, HOTEN FROM KHACHHANG
WHERE MAKH = (SELECT TOP 1 MAKH FROM HOADON GROUP BY MAKH
ORDER BY COUNT(DISTINCT SOHD) DESC)
--41. Tháng mẩEy trong nắm 2006, doanh sốE bán hàng cao nhẩEt ?
SELECT TOP 1 MONTH(NGHD) AS THANG_DOANHSO_MAX FROM HOADON WHERE YEAR(NGHD) = 2006 GROUP BY MONTH(NGHD) ORDER BY SUM(TRIGIA) DESC
--42. Tìm sa@n phẩ@m (MASP, TENSP) có tố@ng sốE lượng bán ra thẩEp nhẩEt trong nắm 2006. SELECT MASP, TENSP FROM SANPHAM
WHERE MASP = (SELECT TOP 1 MASP FROM CTHD GROUP BY MASP ORDER BY SUM(SL) DESC)
--43. *Mốbi nước sa@n xuẩEt, tìm sa@n phẩ@m (MASP,TENSP) có giá bán cao nhẩEt.
--CAU NAY KHO. DAU TIEN TIM MAX GIA CUA NUOCSX
SELECT NUOCSX, MAX(GIA) AS MAX FROM SANPHAM GROUP BY NUOCSX
--SAU DO DAT TEN BANG VUA ROI LA B, ROI THUC HIEN KET TRAI. OI HK THANH' VAI~ :)) SELECT B.NUOCSX, MASP, TENSP
FROM (SELECT NUOCSX, MAX(GIA) AS MAX FROM SANPHAM
GROUP BY NUOCSX) AS B LEFT JOIN SANPHAM S ON S.GIA = B.MAX WHERE B.NUOCSX = S.NUOCSX
--44. Tìm nước sa@n xuẩEt sa@n xuẩEt ít nhẩEt 3 sa@n phẩ@m có giá bán khác nhau. lOMoAR cPSD| 58675420
--45. *Trong 10 khách hàng có doanh sốE cao nhẩEt, tìm khách hàng có sốE lẩRn mua hàng nhiếRu nhẩEt.
-- DAU TIEN LA TIM 10 KHACH HANG CO DOANH SO CAO NHAT SELECT TOP 10 MAKH FROM KHACHHANG ORDER BY DOANHSO DESC
--DAY LA BANG KHACH HANG VA SO LAN MUA SELECT MAKH, COUNT(SOHD) FROM HOADON GROUP BY MAKH
/*KET TRAI 2 BANG LAI VOI NHAU ROI SAP XEP THEO SO LAN MUA GIAM DAN. TA CHON DUOC KHACH HANG TRONG 10 NGUOI
MA CO DOANH SO CAO NHAT MA CO SO LAN MUA NHIEU NHAT. LAY DUOC MAKH ROI THI LAY THONG TIN THOI */ SELECT TOP 1 A.MAKH FROM (SELECT TOP 10 MAKH FROM KHACHHANG ORDER BY DOANHSO DESC) AS A LEFT JOIN
(SELECT MAKH, COUNT(SOHD) AS SL FROM HOADON GROUP BY MAKH) AS B ON A.MAKH = B.MAKH ORDER BY SL DESC --DAP SO SELECT * FROM KHACHHANG
WHERE MAKH = (SELECT TOP 1 A.MAKH FROM (SELECT TOP 10 MAKH FROM KHACHHANG ORDER BY DOANHSO DESC) AS A LEFT JOIN
(SELECT MAKH, COUNT(SOHD) AS SL FROM HOADON GROUP BY MAKH) AS B ON A.MAKH = B.MAKH ORDER BY SL DESC)