Create Database QLKH
Create Database 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) )
------ 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.
BAI 2.
CREATE VIEW V2 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DIACHI LIKE 'TAN BINH'
BAI 3.
BAI 4.
BAI 5.
CREATE VIEW V5 AS SELECT MAKH,TENKH,DIACHI,DT,EMAIL FROM KHACHHANG WHERE DT IS NULL AND EMAIL IS NULL
BAI 6.
BAI 7.
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
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
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
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
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
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)
--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
--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
--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
--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