BÀI TẬP THẦY SƠN RA
1. Cơ sở dữ liệu quản lý bán hàng gồm có những bảng sau:
Hàng hoá: HangHoa (MaHH, TenHang, DVT, DonGia)
Khách hàng: KH (MaKH, TenKH, DiaChiKH, DienThoai)
Hoá đơn: HOADON (SoHD, MaKH, NgayBan)
Hoá đơn chi tiết: HOADONCT (SoHD, MaHH, SoLuong)
a. Tạo CSDL với tên BANHANG (Có thể dùng tiện ích Enterprise Manager hoặc Query Analyzer )
b. Tạo các bảng, mối quan hệ giữa các bảng trên
c. Thực hiện các câu truy vấn sau (dùng VIEW để thực hiện nếu có thể):
- Dùng lệnh INSERT INTO để chèn các thông tin vào bảng
- Cho xem thông tin về các mặt hàng có đơn vị tính là Hộp hoặc Gói.
- Cho xem thông tin của các khách hàng có tên là Hương và có địa chỉ tại Nghệ An
- Cho xem tất cả khách hàng mua hàng trong ngày 10/10/09.
- Cho xem tên các mặt hàng được mua > 1 lần
- Cho xem thông tin đầy đủ của những khách hàng mua hàng có tổng tiền thanh toán >= 500000.
c. Dùng Query Analyzer lập trình thực hiện các công việc
- Cho xem số lượng cao nhất và số lượng thấp nhất được bán ra
- Cho xem số lượng cao nhất và số lượng thấp nhất được bán ra của mặt hàng có tên 'Tủ lạnh'
- Cho xem các hàng hóa có số lượng bán ra >= 5, nếu không có thì thông báo không có.
- Sử dụng biến kiểu dữ liệu CURSOR in danh sách TenKH, DiaChiKH, DienThoai của những khách hàng mua hàng trong ngày 10/10/09
d. Tạo thủ tục, hàm để sinh mã tự động cho trường MaHH trong bảng HangHoa
VD: trong bảng có mã lớn nhất hiện tại là HH0015 thì mã mới là HH0016
e. Viết thủ tục (hoặc hàm) nhận vào giá trị Mã hàng hóa (MaHH) kết quả in ra là tổng số lượng (SoLuong) hàng đã bán của mặt hàng đó, gọi thủ tục (hàm) để in kết quả.
f. Viết thủ tục (hoặc hàm) nhận vào giá trị Số hóa đơn (SoHD) kết quả in ra là tổng số lượng (SoLuong) hàng đã bán của hóa đơn đó, gọi thủ tục (hàm) để in kết quả.
g. Viết thủ tục (hoặc hàm) đếm số hàng hóa (MaHH) dựa vào số hóa đơn (SoHD) (trong bảng HOADONCT) được bán ra (dùng lệnh count).
----------------------------------------------------------------Bài Làm----------------------------------------------------------------------------------------------
--PHAN 2--TAO CSDL---
CREATE DATABASE BANHANG
ON PRIMARY
(
NAME=BANHANG_DATA,
FILENAME='E:\BANHANG_DATA.MDF',
SIZE=50 MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=BANHANG_LOG,
FILENAME='E:\BANHANG_LOG.LDF',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=5MB
)
--XOA CSDL BAN HANG--------------
DROP DATABASE BANHANG
--b.TẠO CÁC BẢNG VÀ MỐI QUAN HỆ GIỮA CÁC BẢNG
CREATE TABLE HANGHOA
( MAH CHAR(5),
CONSTRAINT PRK_HANGHOA_MAH
PRIMARY KEY(MAH),
TENH CHAR(30),
DVT CHARr(10),
DONGIA INT,
)
CREATE TABLE KHACHHANG
( MAKH CHAR(5)
CONSTRAINT PRK_KHACHHANG_MAKH
PRIMARY KEY(MAKH),
TENKH CHAR(30),
DIACHI CHAR(30),
DIENTHOAI CHAR(11),
)
CREATE TABLE HOADON
( SOHD CHAR(5)
CONSTRAINT PRK_HOADON_SOHD
PRIMARY KEY(SOHD),
MAKH char(5)
CONSTRAINT FRK_KHACHHANG_MAKH
FOREIGN KEY(MAKH)
REFERENECS KHACHHANG(MAKH),
NGAYBAN DATETIME,
)
CREATE TABLE HOADONCT
(
SOHD CHAR(5) ,
MAH CHAR(5),
CONSTRAINT PRK_HOADON_SOHD_MAH
PRIMARY KEY(SOHD,MAH),
SOLUONG INT ,
)
-----XOA BANG --------------
DROP TABLE TEN_BANG_CAN_XOA
--C. THỰC HIỆN CÁC LỆNH TRUY VẤN (DÙNG VIEW ĐỂ THỰC HIỆN NẾU CÓ THỂ):
-- DÙNG LỆNH INSERT INTO ĐỂ CHÈN CÁC THÔNG TIN VÀO BẢNG
--CHEN DL VAO BANG HANGHOA----------------
INSERT INTO HANGHOA VALUES ('HH003','TU LANH','CAI',2100)
--CHEN VAO BANG HOADON------------
INSERT INTO HOADON VALUES ('HD002','KH001','2010-11-01')
--CHEN VAO BANG KHACHHANG------
INSERT INTO KHACHHANG VALUES ('KH002','HUONG','NA',154563)
--CHEN VAO BANG HOADONCT------------
INSERT INTO HOADONCT VALUES ('HD006','HH003',100)
--CHO XEM THÔNG TIN CÁC MẶT HÀNG CÓ ĐƠN VỊ TÍNH LÀ CÁI HOẶC HỘP.
SELECT *
FROM HANGHOA
WHERE DVT='HOP'OR DVT='CAI'
--CHO XEM THÔNG TIN CỦA CÁC KHÁCH HÀNG CÓ TÊN LÀ PHAN VAN NGON VÀ ĐỊA CHỈ YÊN THÀNH
SELECT *
FROM KHACHHANG
WHERE TENKH='PHAN VAN NGON' AND DIACHI='YEN THANH'
--CHO XEM TẤT CẢ KHÁCH HÀNG MUA HÀNG TRONG NGÀY 10/10/09.
SELECT KH.MAKH,TENKH,DIACHI,NGAYBAN
FROM KHACHHANG KH INNER JOIN HOADON HD ON KH.MAKH=HD.MAKH
WHERE CONVERT(CHAR(7),NGAYBAN,21)='2010-10'
--CHO XEM TÊN CÁC MẶT HÀNG DC MUA > 1 LẦN
SELECT HH.MAH,TENH,COUNT(*) AS [SO LAN ]
FROM HANGHOA HH INNER JOIN HOADONCT CT ON HH.MAH=CT.MAH
GROUP BY HH.MAH,TENH
HAVING COUNT(*)>1
--- CHO XEM THÔNG TIN NHỮNG KHÁCH HÀNG MUA HÀNG CÓ TỔNG TIỀN THANH TOÁN >= 500000.
SELECT KH.MAKH,TENKH,SUM(DONGIA*SOLUONG) AS [TONG TIEN]
FROM
HANGHOA HH ,HOADON HD, HOADONCT CT ,KHACHHANG KH
WHERE CT.SOHD=HD.SOHD AND HD.MAKH=KH.MAKH AND HH.MAH=CT.MAH
GROUP BY KH.MAKH,TENKH
HAVING SUM(DONGIA*SOLUONG)>500000
--PHẦN LẬP TRÌNH---------------------------------------------------------------------------------------------------------------------------------------------
---c. Dùng Query Analyzer lập trình thực hiện các công việc
--- Cho xem số lượng cao nhất và số lượng thấp nhất được bán ra
DECLARE @MAX INT ,@MIN INT
BEGIN
SELECT @MAX=MAX(SOLUONG),@MIN=MIN(SOLUONG)
FROM HOADONCT
END
PRINT 'SO LUONG LON NHAT:'+CAST(@MAX AS CHAR(6))
PRINT 'SO LUONG BE NHAT :'+CAST(@MIN AS CHAR(6))
--- Cho xem số lượng cao nhất và số lượng thấp nhất được bán ra của mặt hàng có tên 'Tủ lạnh'
DECLARE @MAX INT ,@MIN INT
BEGIN
SELECT @MAX=MAX(SOLUONG),@MIN=MIN(SOLUONG)
FROM HOADONCT CT INNER JOIN HANGHOA HH ON CT.MAH=HH.MAH
WHERE TENH='TU LANH'
END
PRINT 'SO LUONG LON NHAT CUA MAT HANG TU LANH:'+CAST(@MAX AS CHAR(6))
PRINT 'SO LUONG BE NHAT CUA MAT HANG TU LANH :'+CAST(@MIN AS CHAR(6))
--CHO XEM CAC HANG HOA CO SO LUONG BAN RA >5,NEU KHONG THI BAO LA KO
IF EXISTS (
SELECT MAH,SUM(SOLUONG)
FROM HOADONCT
GROUP BY MAH
HAVING SUM(SOLUONG)>5
)
BEGIN
SELECT CT.MAH,TENH,SUM(SOLUONG) AS TONG
FROM HOADONCT CT INNER JOIN HANGHOA HH ON HH.MAH=CT.MAH
GROUP BY CT.MAH,TENH
HAVING SUM(SOLUONG)>5
END
ELSE
PRINT 'KO CO MAT HANG NAO CO SO LUONG >5 '
-------------------CACH SAU SAI----------NHUNG CO THE THAM KHAO DE TRANH LOI NAY-----------------------------------------
IF EXISTS (SELECT COUNT(*)
FROM HOADONCT
WHERE SOLUONG>5
GROUP BY MAH)
BEGIN
SELECT CT.MAH ,TENH
FROM HOADONCT CT INNER JOIN HANGHOA HH ON HH.MAH=CT.MAH
WHERE SOLUONG>5
GROUP BY CT.MAH,TENH
END
ELSE
PRINT 'KO CO MAT HANG NAO BAN VOI TONG SO LUONG 5'
- Sử dụng biến kiểu dữ liệu CURSOR in danh sách TenKH, DiaChiKH, DienThoai của những khách hàng mua hàng trong ngày 2010-10-01
DECLARE INDS CURSOR FOR SELECT TENKH,DIACHI,DIENTHOAI
FROM KHACHHANG KH INNER JOIN HOADON HD ON KH.MAKH=HD.MAKH
WHERE CONVERT(CHAR(10),NGAYBAN,21)='2010-10-01'
OPEN INDS
DECLARE @TENKH CHAR(30),@DIACHI CHAR(20),@DIENTHOAI CHAR(11)
FETCH NEXT FROM INDS INTO @TENKH ,@DIACHI ,@DIENTHOAI
WHILE (@@FETCH_STATUS=0)
BEGIN
PRINT @TENKH +' :'+@DIACHI +' :'+@DIENTHOAI
FETCH NEXT FROM INDS INTO @TENKH ,@DIACHI ,@DIENTHOAI
END
CLOSE INDS
DEALLOCATE INDS
---------------------------Tham Khao Them ---------------------------------------------------------------------------------
-- Sử dụng biến kiểu dữ liệu CURSOR in danh sách TenKH, DiaChiKH, DienThoai của những khách hàng mua hàng trong ngày 2010-10
DECLARE NNN CURSOR FOR
SELECT TENKH,DIACHI,DIENTHOAI
FROM KHACHHANG KH INNER JOIN HOADON HD ON HD.MAKH=KH.MAKH
WHERE CONVERT (CHAR(7),NGAYBAN,21)='2010-10'
OPEN NNN
PRINT '||==================|=================|=====================||'
PRINT '|| HO VA TEN'+SPACE(11)+' DIA CHI '+SPACE(12) +'DIEN THOAI'
DECLARE @TENKH CHAR(20) ,@DIACHI CHAR(20) ,@DIENTHOAI CHAR(20)
FETCH NEXT FROM NNN INTO @TENKH,@DIACHI,@DIENTHOAI
WHILE (@@FETCH_STATUS=0)
BEGIN
PRINT '||------------------|-----------------|---------------------||'
PRINT '|| '+ @TENKH+@DIACHI+@DIENTHOAI
FETCH NEXT FROM NNN INTO @TENKH,@DIACHI,@DIENTHOAI
END
PRINT '||==================|=================|=====================||'
CLOSE NNN
DEALLOCATE NNN
=====================================================================================
DECLARE INDS CURSOR FOR
SELECT DISTINCT TENKH,DIACHI,DIENTHOAI
FROM KHACHHANG KH INNER JOIN HOADON HD ON KH.MAKH=HD.MAKH
WHERE CONVERT(CHAR(7),NGAYBAN,21)='2010-10'
OPEN INDS
DECLARE @STENKH CHAR(20),@SDIACHI CHAR(20),@SDIENTHOAI CHAR(10)
FETCH NEXT FROM INDS INTO @STENKH ,@SDIACHI ,@SDIENTHOAI
WHILE (@@FETCH_STATUS=0)
BEGIN
PRINT @STENKH+SPACE(5)+@SDIACHI+SPACE(5)+@SDIENTHOAI
FETCH NEXT FROM INDS INTO @STENKH ,@SDIACHI ,@SDIENTHOAI
END
CLOSE INDS
DEALLOCATE INDS
d. Tạo thủ tục, hàm để sinh mã tự động cho trường MaHH trong bảng HangHoa
-----TAO THU TUC ----------------
CREATE PROCEDURE SINHMA @S NVARCHAR(6) OUTPUT
AS
BEGIN
DECLARE @MAX INT
SELECT @MAX=MAX(CAST(SUBSTRING(MAH,3,3) AS INT))+1
FROM HANGHOA
SET @S=CAST(@MAX AS NVARCHAR(5))
SET @S='HH'+RIGHT('0000'+@S,3)
END
PRINT @S
----XOA THU TUC ------------
DROP PROC SINHMA
-------GOI THU TUC ----------
DECLARE @T NVARCHAR(6)
EXEC SINHMA @T
e. Viết thủ tục (hoặc hàm) nhận vào giá trị Mã hàng hóa (MaHH) kết quả in ra là tổng số lượng (SoLuong) hàng đã bán của mặt hàng đó, gọi thủ tục (hàm) để in kết quả.
---TAO THU TUC -----------------------------
CREATE PROC XEMSL @MAH CHAR(5) OUTPUT
AS
BEGIN
DECLARE @SL INT
SELECT @MAH=MAH,@SL=SUM(SOLUONG)
FROM HOADONCT
WHERE MAH=@MAH
GROUP BY MAH
PRINT @MAH +' :'+CAST(@SL AS CHAR(6))
END
--XOA THU TUC --------------------------------
DROP PROC XEMSL
---GOI THU TUC -------------------------------
EXEC XEMSL 'HH002'
---f. Viết thủ tục (hoặc hàm) nhận vào giá trị Số hóa đơn (SoHD) kết quả in ra là tổng số lượng (SoLuong) hàng đã bán của hóa đơn đó, gọi thủ tục (hàm) để in kết quả
------TAO THU TUC ----------
CREATE PROC XSL @SOHD CHAR(10) OUTPUT
AS
BEGIN
DECLARE @SL INT
SELECT @SL=SUM(SOLUONG)
FROM HOADONCT
WHERE SOHD=@SOHD
END
PRINT @SL
---GOI THU TUC -------
EXEC XSL 'HD001'
g. Viết thủ tục (hoặc hàm) đếm số hàng hóa (MaHH) dựa vào số hóa đơn (SoHD) (trong bảng HOADONCT) được bán ra (dùng lệnh count).
--TAO THU TUC -------------
CREATE PROC DEMSL @M INT OUTPUT,@S INT OUTPUT
as
BEGIN
DECLARE @MAH INT,@SOHD INT
SELECT @MAH=COUNT(DISTINCT MAH),@SOHD=COUNT(DISTINCT SOHD)
FROM HOADONCT
SET @M=@MAH
SET @S=@SOHD
END
PRINT 'DANH SACH CO '+CAST(@S AS CHAR(6))+' HOA DON TRONG '+CAST(@S AS CHAR(6))+'HOA DON THI CO '+CAST(@M AS CHAR(6)) +'MAT HANG'
----XOA THU TUC -------
DROP PROC DEMSL
----GOI THU TUC -------
DECLARE @M INT,@S INT
EXEC DEMSL @M,@S
ĐANG CẬP NHẬT .....TIẾP.........
BÀI TẬP CÔ RA
--------------------------------------------------TAO CSDL---------------------------------------------------------------------------------------------
CREATE DATABASE QLBH
ON PRIMARY
(
NAME=QLBH_DATA,
FILENAME='E:\QLBH_DATA.MDF',
SIZE=50MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=QLBH_LOG,
FILENAME='E:\QLBH_LOG.LDF',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=5MB
)
------------------------------------XOA CSDL----------------------------------------------------------------------------------------------------------
DROP DATABASE QLBH
------------------------------------2.TAO CAC TABLE SAU---------------------------------------------------------------------------------------
------------------------------------TABLE VATTU------------------------------------------------------------------------------------------------------
CREATE TABLE VATTU
(
MAVT CHAR(4)
CONSTRAINT PRK_VATTU_MAVT
PRIMARY KEY(MAVT),
TENVT CHAR(30) NOT NULL,
DVT CHAR(10) NOT NULL,
)
---------------------TAO BANG DONDH----------------------------------------------------------------------------------------------------
CREATE TABLE DONDH
(
SODH INT IDENTITY(1,1),
NGAYDH DATETIME,
MANCC CHAR(3) NOT NULL,
)
-------------------ALTER KHOA CHINH-------------------------------------------------------------------------------------------------
ALTER TABLE DONDH ADD CONSTRAINT PRK_DONDH_SODH
PRIMARY KEY(SODH)
-------------------XOA CONSTRAINT ----------------------------------------------------------------------------------------------------
ALTER TABLE DONDH DROP CONSTRAINT PRK_DONDH_SODH
--------------------TAT BO TAT CA QUY TAC TOAN VEN DL-------------------------------------------------------------------
ALTER TABLE DONDH
NOCHECK CONSTRAINT ALL
Hoac
ALTER TABLE DONDH
NOCHECK CONSTRAINT PRK_DONDH_SODH
----------------------BAT CAC QUY TAC KIEM TRA TOAN VEN DL-------------------------------------------------------------------
ALTER TABLE DONDH
CHECK CONSTRAINT ALL
OR
ALTER TABLE DONDH
CHECK CONSTRAINT PRK_DONDH_SODH
----------------------------BANG CTDONDH--------------------------------------------------------------------------------------------------------
CREATE TABLE CTDONDH
(
SODH INT
CONSTRAINT PRK_CTDONDH_SODH
PRIMARY KEY(SODH),
MAVT CHAR (4)
CONSTRAINT FRK_VATTU_MAVT
FOREIGN KEY(MAVT)
REFERENCES VATTU(MAVT),
SLDAT INT NOT NULL,
)
----------------------BANG NCC--------------------------------------------------------------------------------------------------------------
CREATE TABLE NCC
(
MANCC CHAR(3)
CONSTRAINT PRK_NCC_MANCC
PRIMARY KEY(MANCC),
TENNCC CHAR (30) NOT NULL,
DIACHI VARCHAR(30) NOT NULL,
DT CHAR (15)
)
-------------------------TAO BANG TON KHO -----------------------------------------------------------------------------------------
CREATE TABLE TONKHO
(
NAMTHANG DATETIME ,
MAVT CHAR(4)
CONSTRAINT FRK_VATTU_MAVT1
FOREIGN KEY(MAVT)
REFERENCES VATTU (MAVT),
TONGNHAP INT ,
TONGXUAT INT,
SLTONGKHO INT,
)
--------------------BANG NHAP HANG--------------------------------------------------------------------------------------------------
CREATE TABLE NHAPHANG
(
MAVT CHAR(4)
CONSTRAINT FRK_HANGNHAP_MAVT
FOREIGN KEY(MAVT)
REFERENCES VATTU(MAVT),
MANCC CHAR(3)
CONSTRAINT FRK_HANGNHAP_MANCC
FOREIGN KEY(MANCC)
REFERENCES NCC (MANCC),
SLNHAP INT ,
NGAYNHAP DATETIME,
)
---------------------------------XOA BANG ----------------------------------------------------------------------------------------------------
DROP TABLE NHAPHANG
------------------------------THEM COT VAO BANG -------------------------------------------------------------------------------------
ALTER TABLE VATTU ADD DONGIA INT
---------------------------------SUA KIEU DL COT TRONG BANG -----------------------------------------------------------------------------
ALTER TABLE VATTU ALTER COLUMN DONGIA CHAR(30)
-----------------------2.///////////////////////////---BANG AO --VIEW ----/////////////////////////----------------------------------------
--2.1..HIEN THI THONG TIN TRONG BANG DONDH VA 2 COT DIA CHI ,TEN NCC TRONG BANG NCC--
CREATE VIEW HT AS
SELECT DONDH.*,TENNCC
FROM DONDH INNER JOIN NCC ON DONDH.MANCC=NCC.MANCC
----XEM BANG VIEW VUA TAO ---------------
SELECT HT.*
FROM HT
---2.2-TINH TONG SO LUONG CUA TUNG VAT TU ----------------
CREATE VIEW HT1 AS
SELECT VATTU.MAVT,TENVT,SUM(SLDAT) AS TONG
FROM VATTU INNER JOIN CTDONDH ON VATTU.MAVT=CTDONDH.MAVT
GROUP BY VATTU.MAVT,TENVT
------XEM BANG VIEW VUA HIEN THI ----------------
SELECT *
FROM HT1
----TINH TONG CUA CAC VAT TU ---------------------
SELECT SUM(SLDAT) AS [TONG SO LUONG]
FROM CTDONDH
--2.3--HIEN THI THONG TIN CAC DON DAT HANG TRONG BANG DONDH VA HO TEN NCC TRONG BANG NCC VOI
-------YEU CAU SAP XEP MA NCC TANG DAN----------------------------------------
CREATE VIEW HT2 AS
SELECT DONDH.*,TENNCC
FROM DONDH INNER JOIN NCC ON DONDH.MANCC=NCC.MANCC
----SEP XEP MANCC TANG DAN--------------
SELECT MANCC,TENNCC
FROM HT2
ORDER BY MANCC ASC
---2.4---THONG KE TONG SO DON DAT HANG MA CONG TY DA DAT HANG ---------------------
--THEO TUNG NHA CUNG CAP VA SAP XEP DU LIEU THEO TONG SO DON DAT HANG TANG DAN----------------------
CREATE VIEW HT3 AS
SELECT NCC.MANCC,TENNCC,COUNT(SODH) AS TONG
FROM NCC,DONDH
WHERE NCC.MANCC=DONDH.MANCC
GROUP BY NCC.MANCC,TENNCC
-----SAP XEP DU LIEU THEO TONG DON DAT HANG TANG DAN--------------
SELECT MANCC,TENNCC,TONG
FROM HT3
ORDER BY TONG ASC
---XOA BANG AO--------------------
DROP VIEW HT4
--/////CACH 2-----------------------------------------------------------
--2.5...BANG 2.4 NHUNG LOC NHUNG BAN GHI CO MANCC BAT DAU B CHU 'C' VA TONG SL DON DAT HANG >1--
SELECT MANCC,TENNCC,TONG
FROM HT3
WHERE MANCC LIKE 'C%' AND TONG>1
--2.6 --TAO DANH SACH TEN CAC VATTU DA DAT HANG TRONG THANG 01/2010--------------------
CREATE VIEW HT4 AS
SELECT TENVT,NGAYDH
FROM VATTU ,DONDH,CTDONDH
WHERE CONVERT(CHAR(10),NGAYDH,21) ='2010-01-01' AND
CTDONDH.MAVT=VATTU.MAVT AND CTDONDH.SODH=DONDH.SODH
---XEM DANH SACH VUA TAO ------------------------------------------
SELECT *
FROM HT4
Moi update
---2.1-----------------------------------------------------------------------------------
create view ten_v
as
select tennhacc,diachi from tbDonDH dh inner join tbnhacc ncc on dh.manhacc=ncc.manhacc
----goi--------------------
select * from ten_v
----2.2----------------------------------------------------------------------------------
SELECT tenvtu,sum(sldat)
FROM tbCTDONDH INNER JOIN tbVATTU ON tbCTDONDH.mavtu = tbVATTU.mavtu
group by tenvtu
----2.3----------------------------------------------------------------------------------
SELECT *
FROM tbCTDONDH INNER JOIN
tbDONDH ON tbCTDONDH.sodh = tbDONDH.sodh INNER JOIN
tbNHACC ON tbDONDH.manhacc = tbNHACC.manhacc
order by tbNHACC.manhacc desc
----2.4----------------------------------------------------------------------------------
select tennhacc,count(*) as tong
FROM tbCTDONDH INNER JOIN
tbDONDH ON tbCTDONDH.sodh = tbDONDH.sodh INNER JOIN
tbNHACC ON tbDONDH.manhacc = tbNHACC.manhacc
group by tennhacc
order by tong
----2.5----------------------------------------------------------------------------------
select tennhacc,count(*) as tong
FROM tbCTDONDH INNER JOIN
tbDONDH ON tbCTDONDH.sodh = tbDONDH.sodh INNER JOIN
tbNHACC ON tbDONDH.manhacc = tbNHACC.manhacc
where tbNhacc.manhacc like 'c%'
group by tennhacc
having count(*)>=1
order by tong
----2.6----------------------------------------------------------------------------------
select tenvtu,ngaydh
from tbdondh dh inner join tbctdondh ct on dh.sodh=ct.sodh
inner join tbvattu vt on ct.mavtu=vt.mavtu
where convert(char(7),ngaydh,21)='2011-10'
----2.7----------------------------------------------------------------------------------
--Truy Van con--------------------
----3.1----------------------------------------------------------------------------------
select *
from tbdondh
where ngaydh =(
select max(ngaydh )
from tbdondh)
----3.2----------------------------------------------------------------------------------
SELECT tenvtu,sum(sldat)*100/(select sum(sldat) from tbctdondh ) as [phan tram]
FROM tbCTDONDH INNER JOIN tbVATTU ON tbCTDONDH.mavtu = tbVATTU.mavtu
group by tenvtu
----3.3----------------------------------------------------------------------------------
SELECT *
FROM tbDONDH INNER JOIN
tbNHACC ON tbDONDH.manhacc = tbNHACC.manhacc
where convert(char(4),ngaydh,21)='2011'