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

Create Database QLKH

The document contains SQL commands to create databases, tables, views, and insert data. It creates databases and tables for customers, products, invoices, and invoice details. It then inserts sample data and creates several views to query and summarize the data in different ways, such as views to filter customers by location, views to summarize invoice totals, and views to join tables.

Uploaded by

Linh Nguyen
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views

Create Database QLKH

The document contains SQL commands to create databases, tables, views, and insert data. It creates databases and tables for customers, products, invoices, and invoice details. It then inserts sample data and creates several views to query and summarize the data in different ways, such as views to filter customers by location, views to summarize invoice totals, and views to join tables.

Uploaded by

Linh Nguyen
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 35

CREATE DATABASE QLKH USE QLKH

CREATE TABLE KHACHHANG ( MAKH CHAR(5) CONSTRAINT PRK_KHACHHANG_MAKH PRIMARY KEY, TENKH NVARCHAR(30) NOT NULL, DIACHI NVARCHAR (50), DT NVARCHAR (10) CONSTRAINT CHK_KHACHHANG_DT CHECK(DT LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' OR DT LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] [0-9][0-9]' OR DT IS NULL), EMAIL NVARCHAR(30) ) CREATE TABLE VATTU ( MAVT CHAR(5) CONSTRAINT PRK_VATTU_MAVT PRIMARY KEY, TENVT NVARCHAR(30) NOT NULL, DVT NVARCHAR (20), GIAMUA NUMERIC (9,0), SLTON NUMERIC(9,0) )

CREATE TABLE HOADON ( MAHD CHAR(10) CONSTRAINT PRK_HOADON_MAKH_MAHD PRIMARY KEY(MAHD,MAKH), NGAY DATETIME, MAKH NVARCHAR(5),

TONGTG NUMERIC(12,0) CONSTRAINT CHK_HOADON_TONGTG CHECK(TONGTG>0) ) CREATE TABLE CHITIETHOADON ( MAHD NVARCHAR(10) CONSTRAINT PRK_CTHD_MAHD_MAVT PRIMARY KEY(MAHD,MAVT), MAVT NVARCHAR(5), SL NUMERIC(20), KHUYENMAI NUMERIC(20), GIABAN NUMERIC(20) )

set dateformat dmy

------ VATTU: INSERT INTO VATTU VALUES('VT01','XI MANG','BAO',50000,5000) INSERT INTO VATTU VALUES('VT02','CAT','KHOI',45000,50000) INSERT INTO VATTU VALUES('VT03','GACH ONG','VIEN',120,800000) INSERT INTO VATTU VALUES('VT04','GACH THE','VIEN',110,800000) INSERT INTO VATTU VALUES('VT05','DA LON','KHOI',25000,100000) INSERT INTO VATTU VALUES('VT06','DA NHO','KHOI',33000,100000) INSERT INTO VATTU VALUES('VT07','LAM GIO','CAI',15000,50000)

--TABLE KHACHHANG: INSERT INTO KHACHHANG VALUES('KH01','NGUYEN THI BE','TAN BINH','0838457895','BNT @YAHOO.COM')

INSERT INTO KHACHHANG VALUES('KH02','LE HOANG NAM','BINH CHANH','0839878987','NAMLEHOANG @ABC.COM.VN') INSERT INTO KHACHHANG VALUES('KH03','TRAN THI CHIEU','TAN BINH','0838457895',null) INSERT INTO KHACHHANG VALUES('KH04','MAI THI QUE ANH','BINH CHANH',null,null) INSERT INTO KHACHHANG VALUES('KH05','LE VAN SANG','QUAN 10',null,'SANGLV @HCM.VNN.VN') INSERT INTO KHACHHANG VALUES('KH06','RAN HOANG KHAI','TAN BINH','0838457897',null) --TABLE HOADON: INSERT INTO HOADON VALUES('HD001','12/05/2000','KH01',null) INSERT INTO HOADON VALUES('HD002','25/05/2000','KH02',null) INSERT INTO HOADON VALUES('HD003','25/05/2000','KH01',null) INSERT INTO HOADON VALUES('HD004','25/05/2000','KH04',null) INSERT INTO HOADON VALUES('HD005','26/05/2000','KH04',null) INSERT INTO HOADON VALUES('HD006','02/06/2000','KH03',null) INSERT INTO HOADON VALUES('HD007','22/06/2000','KH04',null) INSERT INTO HOADON VALUES('HD008','25/06/2000','KH03',null) INSERT INTO HOADON VALUES('HD009','15/08/2000','KH04',null) INSERT INTO HOADON VALUES('HD010','30/09/2000','KH01',null) INSERT INTO HOADON VALUES('HD011','27/12/2000','KH06',null) INSERT INTO HOADON VALUES('HD012','27/12/2000','KH01',null)

--TABLE CHITIETHOADON: INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN) VALUES('HD001','VT01','5','52000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD001','VT05','10','30000')

INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD002','VT03','10000','150') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD003','VT02','20','55000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD004','VT03','50000','150') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD004','VT04','20000','120') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD005','VT05','10','30000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD005','VT06','15','35000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD005','VT07','20','17000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD006','VT04','10000','120') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD007','VT04','20000','125') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD008','VT01','100','55000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD008','VT02','20','47000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD009','VT02','25','48000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD010','VT01','25','57000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD011','VT01','20','55000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD011','VT02','20','45000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD012','VT01','20','55000')

INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD012','VT02','10','48000') INSERT INTO CHITIETHOADON(MAHD,MAVT, SL, GIABAN)VALUES('HD012','VT03','10000','150')

BAI 1.

CREATE VIEW V1 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG --WHERE MAKH,TENKH,DIACHI,DT,EMAIL

BAI 2.

CREATE VIEW V2 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DIACHI LIKE 'TAN BINH'

BAI 3.

CREATE VIEW V3 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG

WHERE DIACHI LIKE 'BINH CHANH'

BAI 4.

CREATE VIEW V4 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DT IS NULL

BAI 5.

CREATE VIEW V5 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DT IS NULL AND EMAIL IS NULL

BAI 6.

CREATE VIEW V6 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DT IS NOT NULL

AND EMAIL IS NOT NULL

BAI 7.

CREATE VIEW V7 AS SELECT MAVT,TENVT,DVT,GIAMUA FROM VATTU

BAI 8.

CREATE VIEW V8 AS SELECT MAVT,TENVT,GIAMUA,DVT FROM VATTU WHERE DVT LIKE 'CAI'

BAI 9.

CREATE VIEW V9 AS SELECT MAVT,TENVT,GIAMUA,DVT FROM VATTU WHERE GIAMUA > 25000

BAI 10.

CREATE VIEW V10 AS SELECT MAVT,TENVT,GIAMUA,DVT FROM VATTU WHERE TENVT LIKE 'G%' -- LAY NHUNG GIA TRI NAO CO CHU 'G'

BAI 11 CREATE VIEW V11 AS SELECT MAVT,TENVT,GIAMUA,DVT FROM VATTU WHERE ((GIAMUA > 20000) AND (GIAMUA< 40000))

BAI 12

SELECT H.MAHD,TENKH,NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K WHERE K.MAKH=H.MAKH

BAI 13

SELECT K.MAKH,TENKH,CONVERT(NVARCHAR(10),NGAY,103) AS NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K WHERE K.MAKH=H.MAKH AND MONTH(NGAY)=5 AND YEAR(NGAY)=2000

//--SELECT * FROM KHACHHANG //--SELECT * FROM HOADON

BAI 14

SELECT H.MAHD,TENKH,NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K WHERE K.MAKH=H.MAKH AND MONTH(NGAY)=6 AND YEAR(NGAY)=2000

BAI 15

SELECT H.MAHD,TENKH,NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K WHERE K.MAKH=H.MAKH

BAI 16

SELECT H.MAHD,TENKH,NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K WHERE K.MAKH=H.MAKH AND MONTH(NGAY)=6 AND YEAR(NGAY)=2000

BAI 17

SELECT H.MAHD,TENKH,NGAY,DIACHI,DT FROM HOADON H,KHACHHANG K

WHERE (K.MAKH=H.MAKH) and (ngay not in( select ngay FROM HOADON where (K.MAKH=H.MAKH) and (MONTH(NGAY)=6 AND YEAR(NGAY)=2000)))

BAI 18

SELECT MAHD,C.MAVT,TENVT,DVT,TGIABAN=(SL*GIABAN),TGIAMUA=(SL*GIAMUA) FROM CHITIETHOADON C,VATTU V WHERE V.MAVT=C.MAVT

BAI 19

create view c19 as select mahd,c.mavt,tenvt,dvt,giaban,giamua,sl,GM=(sl*giamua),GB=(sl*giaban) from vattu v,chitiethoadon c where v.mavt=c.mavt and giaban>giamua

--cau 20: create view c20 as select mahd,c.mavt,tenvt,dvt,giaban,giamua,slton,GM=(slton*giamua),GB=(slton*giaban),khuyenmai=(case when giaban>100 then giaban*slton*0.1 else 0 end) from vattu v,chitiethoadon c where v.mavt=c.mavt

--cau21: create view c21 as select * from vattu where mavt not in(select mavt from chitiethoadon) insert into vattu values('VT08','gach hoa','vien',2000,50)

--cau 22: create view c22 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd

--cau 23: create view c23 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay, tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua), GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and month(ngay)=5 and year(ngay)=2000

--cau 24: create view c24 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and month(ngay)=6 and year(ngay)=2000

--cau 25: create view c25 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and (month(ngay)=4 or month(ngay)=5 or month(ngay)=6) and year(ngay)=2000 drop view c25

/*-cau 26:-*/ create view c26 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi

--cau 27:

create view c27 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)>=all( select sum(sl*giaban) from chitiethoadon group by mahd ) drop view c27 select * from c27

--cau 28 create view c28 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)>=all( select sum(sl*giaban) from chitiethoadon c, hoadon h where c.mahd=h.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd)

select top 1 h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd,ngay,tenkh,diachi order by sum(sl*giaban) desc

--having sum(sl*giaban)>=all( ----select sum(sl*giaban) from chitiethoadon c, hoadon h where c.mahd=h.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd)

select * from c28 drop view c28

--cau 29 create view c29 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)<=all( select sum(sl*giaban) from chitiethoadon c, hoadon h

where c.mahd=h.mahd group by h.mahd)

--cau 30: select k.makh,tenkh,slhoadon=count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh,tenkh

--cau 31: select k.makh,k.tenkh,sl=count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh, k.tenkh having count(*)>=all(select count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh, k.tenkh)

--cau 32: select k.makh,k.tenkh,slg=sum(sl) from hoadon h,khachhang k,chitiethoadon c where h.makh=k.makh and h.mahd=c.mahd group by k.makh, k.tenkh having sum(sl)>=all(select sum(sl) from hoadon h,khachhang k,chitiethoadon c

where h.makh=k.makh and h.mahd=c.mahd group by k.makh, k.tenkh)

--cau 33: select k.makh,v.mavt,k.tenkh,slg=count(*) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh having count(*)>=all(select count(*) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh)

--CAU 34: SELECT k.makh,v.mavt,k.tenkh,slg=SUM (SL*giaban) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh having SUM (SL*giaban)>=all(select SUM (sl*giaban) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh) --CAU 35

SELECT K.MAKH,TENKH,DIACHI,COUNT(MAHD) SKL

FROM KHACHHANG K,HOADON H WHERE K.MAKH=H.MAKH GROUP BY K.MAKH,TENKH,DIACHI

--cau 1: select * from khachhang create view c1 as select * from khachhang --cau 2: create view c2 as select * from khachhang where diachi like 'Tan Binh' --cau 3: create view c3 as select * from khachhang where diachi like 'Binh Chanh' --cau 4: create view c4 as select * from khachhang where dt is null --cau 5: create view c5

as select * from khachhang where dt is not null and email is null --cau 6 create view c6 as select * from khachhang where dt is not null and email is not null --cau 7 create view c7 as select mavt,tenvt,dvt,giamua from vattu --cau8 create view c8 as select mavt,tenvt,dvt,giamua from vattu where dvt like 'Cai' --cau 9: create view c9 as select mavt,tenvt,dvt,giamua from vattu where giamua>25000 select * from c9

--cau 10 create view c10 as select mavt,tenvt,dvt,giamua from vattu where tenvt like 'G%' --c2: select mavt,tenvt,dvt,giamua from vattu where left(tenvt,4)='Gach' --cau11 create view c11 as select mavt,tenvt,dvt,giamua from vattu where ((giamua>2000) and (giamua <=40000)) --cau12 create view c12 as select h.mahd,tenkh,diachi,dt,convert(nvarchar (10),ngay,103)as ngay from hoadon h,khachhang k where k.makh=h.makh --cau13 create view c13 as select h.mahd,tenkh,diachi,dt,convert(nvarchar (10),ngay,103)as ngay

from hoadon h,khachhang k where k.makh=h.makh and day(ngay)=25 and month(ngay)=5 and year(ngay)=2000 --cau14 create view c14 as select h.mahd,tenkh,diachi,dt,convert(nvarchar (10),ngay,103)as ngay from hoadon h,khachhang k where k.makh=h.makh and month(ngay)=6 and year(ngay)=2000 --cau15: create view c15 as select h.mahd,tenkh,diachi,dt,convert(nvarchar(10),ngay,13)as ngay from hoadon h,khachhang k where k.makh=h.makh --cau 16: create view c16 as select h.mahd,tenkh,diachi,dt,convert(nvarchar(10),ngay,103)as ngay from hoadon h,khachhang k where k.makh=h.makh and (ngay in ( select ngay from hoadon h where k.makh=h.makh and month(ngay)=6 and year(ngay)=2000 ) )

--cau17: create view c17 as select mahd,tenkh,diachi,dt,convert(nvarchar (10),ngay,103)as ngay from hoadon h,khachhang k where (k.makh=h.makh) and (ngay not in( select ngay from hoadon where (k.makh=h.makh) and (month(ngay)=6 and year(ngay)=2000) ) ) --cau18: create view c18 as select mahd,c.mavt,tenvt,dvt,giaban,giamua,sl,GM=(sl*giamua),GB=(sl*giaban) from vattu v,chitiethoadon c where v.mavt=c.mavt --cau 19: create view c19 as select mahd,c.mavt,tenvt,dvt,giaban,giamua,sl,GM=(sl*giamua),GB=(sl*giaban) from vattu v,chitiethoadon c where v.mavt=c.mavt and giaban>giamua --cau 20: create view c20 as

select mahd,c.mavt,tenvt,dvt,giaban,giamua,slton,GM=(slton*giamua),GB=(slton*giaban),khuyenmai=(case when giaban>100 then giaban*slton*0.1 else 0 end) from vattu v,chitiethoadon c where v.mavt=c.mavt --cau21: create view c21 as select * from vattu where mavt not in(select mavt from chitiethoadon) insert into vattu values('VT08','gach hoa','vien',2000,50) --cau 22: create view c22 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd --cau 23: create view c23 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay, tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua), GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and month(ngay)=5 and year(ngay)=2000

--cau 24: create view c24 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and month(ngay)=6 and year(ngay)=2000 --cau 25: create view c25 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,dt,tenvt,dvt,GM=(slton*giamua),GB=(slton*giaban) from khachhang k,hoadon h,vattu v,chitiethoadon c where k.makh=h.makh and v.mavt=c.mavt and h.mahd=c.mahd and (month(ngay)=4 or month(ngay)=5 or month(ngay)=6) and year(ngay)=2000 drop view c25 /*-cau 26:-*/ create view c26 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi -cau 27: create view c27 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban)

from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)>=all( select sum(sl*giaban) from chitiethoadon group by mahd ) drop view c27 select * from c27 --cau 28 create view c28 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)>=all( select sum(sl*giaban) from chitiethoadon c, hoadon h where c.mahd=h.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd) --cach 2 select top 1 h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd and month(ngay)=5 and year(ngay)=2000

group by h.mahd,ngay,tenkh,diachi order by sum(sl*giaban) desc --having sum(sl*giaban)>=all( ----select sum(sl*giaban) from chitiethoadon c, hoadon h where c.mahd=h.mahd and month(ngay)=5 and year(ngay)=2000 group by h.mahd)

select * from c28 --drop view c28 --cau 29 create view c29 as select h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd group by h.mahd,ngay,tenkh,diachi having sum(sl*giaban)<=all( select sum(sl*giaban) from chitiethoadon c, hoadon h where c.mahd=h.mahd group by h.mahd) --cach 2:lay ra hd co ttg nho nhat: select top 1 h.mahd,convert(nvarchar(10),ngay,103)as ngay,tenkh,diachi,TTG=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and h.mahd= c.mahd and month(ngay)=5 and year(ngay)=2000

group by h.mahd,ngay,tenkh,diachi order by sum(sl*giaban) --cau 30: create view c30 as select k.makh,tenkh,slhoadon=count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh,tenkh --cau 31: create view c31 as select k.makh,k.tenkh,slhd=count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh, k.tenkh having count(*)>=all(select count(*) from hoadon h,khachhang k where h.makh=k.makh group by k.makh, k.tenkh) --cau 32 create view c32 as select k.makh,k.tenkh,slg=sum(sl) from hoadon h,khachhang k,chitiethoadon c where h.makh=k.makh and h.mahd=c.mahd

group by k.makh, k.tenkh having sum(sl)>=all(select sum(sl) from hoadon h,khachhang k,chitiethoadon c where h.makh=k.makh and h.mahd=c.mahd group by k.makh, k.tenkh) --cau 33: create view c33 as select k.makh,v.mavt,k.tenkh,slg=sum(sl*giaban) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh having sum(sl*giaban)>=all (select sum(sl*giaban) from hoadon h,khachhang k,chitiethoadon c,vattu v where h.makh=k.makh and h.mahd=c.mahd and c.mavt=v.mavt group by k.makh,v.mavt, k.tenkh) --cau 34:lay thong tin mat hang ban trong nhieu hoa don create view c34 as select top 5 h.mahd,mavt,sl,tgslg=sum(sl*giaban) from chitiethoadon c,hoadon h where h.mahd=c.mahd group by h.mahd,mavt,sl order by sum(sl*giaban) desc --cau 35:

/* create view c35 as select k.makh,tenkh,diachi,dt,slhd=sum(sl) from hoadon h,khachhang k,chitiethoadon c where h.makh=k.makh and h.mahd=c.mahd and (k.makh not exists( select h.makh from hoadon h,khachhang k,chitiethoadon c where h.makh=k.makh and h.mahd=c.mahd and sl is null)) */

--FUNCTION --cau 1: create function DTN(@nam int) returns numeric (20,0) as begin declare @DT_nam numeric(20,0) select @DT_nam=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and year(ngay)=@nam return @DT_nam end --thuc thi declare @DT numeric(20,0)

set @DT=dbo.DTN(2000) print 'DT nam 2000'+cast @DT as nvarchar(10)) --c2 print 'DT nam 2000'+cast (dbo.DTN(2000)as nvarchar(10)) --cau 2: create function DTT(@thang int) returns numeric (20,0) as begin declare @DT_thang numeric(20,0) select @DT_thang=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and month(ngay)=@thang return @DT_thang end

--thuc thi print 'DT thang 5'+cast (dbo.DTT(6)as nvarchar(10)) --cau 3: create function DTKH(@makh nvarchar) returns nvarchar(10) as begin declare @DT_KH nvarchar(10) select @DT_KH=sum(sl*giaban) from hoadon h,chitiethoadon c

where h.mahd=c.mahd return @DT_KH end --thuc thi print 'DT khach hang '+cast (dbo.DTKH(1)as nvarchar(10)) --cau 4: create function slhbd(@makh nvarchar(10)) returns @hoadon table( mahd char(10), tongtg numeric(20,0), ngay datetime) begin if exists(select * from hoadon where @makh like makh) insert into @hoadon select h.mahd, convert(nvarchar(10),ngay,103)as ngay,tongtg=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and @makh like makh group by h.mahd,ngay else insert into @hoadon select h.mahd, convert(nvarchar(10),ngay,103)as ngay,tongtg=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and @makh like makh group by h.mahd,ngay return

end --thuc thi [email protected] --cau 5: /* create function thang(@makh nvarchar(10)) returns @hoadon table( mahd char(10), tongtg numeric(20,0), ngay datetime) begin if exists(select * from hoadon where month(ngay)=@th insert into @hoadon select h.mahd, convert(nvarchar(10),ngay,103)as ngay,tongtg=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and( month(ngay)=@th) group by h.mahd,ngay else insert into @hoadon select h.mahd, convert(nvarchar(10),ngay,103)as ngay,tongtg=sum(sl*giaban) from hoadon h,chitiethoadon c where h.mahd=c.mahd and (month(ngay)=@th) group by h.mahd,ngay return end

*/ --PROCEDURE create proc proc1 as declare @ngay datetime select * from hoadon where day(ngay) like @ngay --thuc thi set dateformat dmy --khong chay dc exec proc1 --cau 2: create proc proc2 as select top 5 k.makh,tenkh,TGT=sum(sl*giaban) from khachhang k,hoadon h,chitiethoadon c where k.makh=h.makh and c.mahd=h.mahd group by k.makh,tenkh order by sum(sl*giaban) desc --thuc thi exec proc2 --cau 3: create proc proc3 as select top 10 v.mavt,tenvt,sl,TSL=sum(sl) from vattu v,chitiethoadon c

where v.mavt=c.mavt group by v.mavt,tenvt,sl order by sum(sl) desc --thuc thi exec proc3 --cau 4 create proc proc4 as select top 10 v.mavt,tenvt,sl,giamua,giaban,lai=(giaban-giamua) from vattu v,chitiethoadon c where v.mavt=c.mavt group by v.mavt,tenvt,sl,giamua,giaban order by lai exec proc4 --cau 5: create proc proc5 as select mahd,mavt,sl,giaban,khuyenmai=(case when sl>100 then sl*giaban*0.05 when sl>500 then sl*giaban*0.1 else 0 end) from chitiethoadon --thuc thi exec proc5 --cau 6: create proc proc6 as

select c.mavt,tenvt,dvt,sl,slton,SLT=slton-sum(sl) from vattu v,chitiethoadon c where c.mavt=v.mavt group by c.mavt,tenvt,dvt,sl,slton --thuc thi exec proc6 --cau 7: create proc proc7 as select mahd,sl,giaban,TTG=sum(sl*giaban) from chitiethoadon group by mahd,sl,giaban --thuc thi exec proc7 --cau 8:KH_VIP bun ngu wa! --TRIGGER --cau 1 create trigger t1 on chitiethoadon for insert as begin declare @mahd nvarchar(10), @mavt nvarchar(10), @sl numeric(20,0), @giaban numeric(20,0) select @mahd=mahd,@mavt=mavt from inserted

if exists(select * from chitiethoadon where mavt=@mavt) begin print 'Da ton tai khoa ngoai ko can chinh sua' rollback tran end end ---tiep alter trigger t2 on chitiethoadon for delete as begin declare @mahd nvarchar(10), @mavt nvarchar(10), @sl numeric(20,0), @giaban numeric(20,0) select @mahd=mahd,@mavt=mavt from deleted if exists(select * from vattu where mavt=@mavt) begin print 'Da ton tai khoa ngoai ko duoc xoa' rollback tran end end

You might also like