Professional Documents
Culture Documents
12. Bài 2
SELECT dbo.HSSV.MaSV, dbo.HSSV.Ho_dem, dbo.HSSV.Ten,
dbo.HSSV.NgaySinh, dbo.HSSV.GioiTinh, dbo.DMLop.TenLop
FROM dbo.HSSV INNER JOIN
dbo.DMLop ON dbo.HSSV.MaLop = dbo.DMLop.MaLop
WHERE (dbo.DMLop.TenLop LIKE N'%Tin 3B%')
13. Bài 3
SELECT MaLop, COUNT(MaSV) AS SiSo
FROM dbo.HSSV
GROUP BY MaLop
14. Bài 4
SELECT dbo.DMMon.MaMon, dbo.DMMon.TenMon, dbo.DMMon.SoTiet,
dbo.DMMon.SoDVHT, dbo.DMMon.HThuc
FROM dbo.KHGDHK INNER JOIN
dbo.DMMon ON dbo.KHGDHK.MaMon = dbo.DMMon.MaMon
INNER JOIN
dbo.DMLop ON dbo.KHGDHK.MaLop = dbo.DMLop.MaLop
WHERE (dbo.KHGDHK.MaHocKy LIKE '07082') AND (dbo.DMLop.TenLop
LIKE N'%Tin 3B%')
15. Bài 5
SELECT MaSV, TongD / TongDVHT AS DTB
FROM (SELECT dbo.DIEM.MaSV, SUM(dbo.DIEM.Diem1 *
dbo.DMMon.SoDVHT) AS TongD, SUM(dbo.DMMon.SoDVHT) AS
TongDVHT
FROM dbo.DIEM INNER JOIN
dbo.DMMon ON dbo.DIEM.MaMon =
dbo.DMMon.MaMon INNER JOIN
dbo.KHGDHK ON dbo.DMMon.MaMon =
dbo.KHGDHK.MaMon
WHERE (dbo.KHGDHK.MaHocKy LIKE '07082')
GROUP BY dbo.DIEM.MaSV) AS A
16. Bài 6
SELECT dbo.HSSV.MaSV, dbo.HSSV.Ho_dem, dbo.HSSV.Ten,
dbo.HSSV.NgaySinh, dbo.HSSV.GioiTinh, dbo.HSSV.MaLop
FROM dbo.HSSV INNER JOIN
dbo.KHGDHK ON dbo.HSSV.MaLop = dbo.KHGDHK.MaLop
INNER JOIN
dbo.DIEM ON dbo.HSSV.MaSV = dbo.DIEM.MaSV INNER JOIN
dbo.DMMon ON dbo.KHGDHK.MaMon = dbo.DMMon.MaMon
AND dbo.DIEM.MaMon = dbo.DMMon.MaMon
WHERE (dbo.KHGDHK.MaHocKy = '07082') AND (dbo.DIEM.Diem1 < 5)
AND (dbo.DMMon.TenMon LIKE N'Lập trình C')
17. Bài 7
SELECT MaSV, Ho_dem, Ten, NgaySinh, GioiTinh, MaLop
FROM dbo.HSSV
WHERE (MaSV NOT IN
(SELECT MaSV
FROM dbo.DIEM
WHERE (Diem1 < 5)))
18. Bài 8
SELECT DK1.MaSV, DK1.Ho_dem, DK1.Ten, DK1.NgaySinh, DK1.GioiTinh
FROM (SELECT MaSV, Ho_dem, Ten, NgaySinh, GioiTinh
FROM dbo.HSSV
WHERE (MaSV NOT IN
(SELECT MaSV
FROM dbo.DIEM
WHERE (Diem1 < 7)))) AS DK1 INNER
JOIN
(SELECT MaSV, TongD / TongDVHT AS DTB
FROM (SELECT DIEM_1.MaSV,
SUM(DIEM_1.Diem1 * dbo.DMMon.SoDVHT) AS TongD,
SUM(dbo.DMMon.SoDVHT) AS TongDVHT
FROM dbo.DIEM AS DIEM_1 INNER
JOIN
dbo.DMMon ON DIEM_1.MaMon
= dbo.DMMon.MaMon INNER JOIN
dbo.KHGDHK ON
dbo.DMMon.MaMon = dbo.KHGDHK.MaMon
WHERE (dbo.KHGDHK.MaHocKy LIKE
'07082')
GROUP BY DIEM_1.MaSV) AS A
WHERE (TongD / TongDVHT >= 8)) AS DK2 ON
DK1.MaSV = DK2.MaSV
19. Bài 9
SELECT dbo.HSSV.MaSV, dbo.HSSV.Ho_dem, dbo.HSSV.Ten,
dbo.HSSV.NgaySinh, dbo.HSSV.GioiTinh, dbo.HSSV.MaLop
FROM (SELECT DiemTBMax.MaSV
FROM (SELECT TOP (1) MaSV, TongD / TongDVHT AS
DTB
FROM (SELECT DIEM_1.MaSV,
SUM(DIEM_1.Diem1 * dbo.DMMon.SoDVHT) AS TongD,
SUM(dbo.DMMon.SoDVHT)
AS TongDVHT
FROM dbo.DIEM AS DIEM_1
INNER JOIN
dbo.DMMon ON
DIEM_1.MaMon = dbo.DMMon.MaMon INNER JOIN
dbo.KHGDHK ON
dbo.DMMon.MaMon = dbo.KHGDHK.MaMon
WHERE
(dbo.KHGDHK.MaHocKy LIKE '07082')
GROUP BY DIEM_1.MaSV) AS A)
AS DiemTBMax INNER JOIN
(SELECT MaSV, TongD / TongDVHT AS DTB
FROM (SELECT DIEM_1.MaSV,
SUM(DIEM_1.Diem1 * DMMon_1.SoDVHT) AS TongD,
SUM(DMMon_1.SoDVHT) AS TongDVHT
FROM dbo.DIEM AS
DIEM_1 INNER JOIN
dbo.DMMon AS
DMMon_1 ON DIEM_1.MaMon = DMMon_1.MaMon INNER JOIN
dbo.KHGDHK AS
KHGDHK_1 ON DMMon_1.MaMon = KHGDHK_1.MaMon
WHERE
(KHGDHK_1.MaHocKy LIKE '07082')
GROUP BY DIEM_1.MaSV) AS
A_1) AS DiemTB ON DiemTBMax.DTB = DiemTB.DTB) AS X INNER JOIN
dbo.HSSV ON X.MaSV = dbo.HSSV.MaSV
21. Bài 2
SELECT MaCB, HoDem, Ten, NgaySinh, GioiTinh, MaQue,
NgayVaoDang, NgayNhapNgu, NgayXuatNgu
FROM dbo.HSCB
WHERE (YEAR(GETDATE()) - YEAR(NgaySinh) >= 50) AND (GioiTinh =
0) OR
(YEAR(GETDATE()) - YEAR(NgaySinh) >= 55) AND (GioiTinh =
1)
22. Bài 3
SELECT MaDonVi, COUNT(MaCB) AS SiSoCB
FROM dbo.QTCongTac
WHERE (ToiNgay = NULL)
GROUP BY MaDonVi
23. Bài 4
SELECT TOP (100) PERCENT dbo.HSCB.HoDem, dbo.HSCB.Ten,
dbo.DMDonVi.TenDonVi, dbo.DMChucVu.TenChucVu,
dbo.QTCongTac.TuNgay,
dbo.QTCongTac.ToiNgay
FROM dbo.QTCongTac INNER JOIN
dbo.HSCB ON dbo.QTCongTac.MaCB = dbo.HSCB.MaCB INNER
JOIN
dbo.DMDonVi ON dbo.QTCongTac.MaDonVi =
dbo.DMDonVi.MaDonVi INNER JOIN
dbo.DMChucVu ON dbo.QTCongTac.MaChucVu =
dbo.DMChucVu.MaChucVu
WHERE (dbo.HSCB.HoDem LIKE N'Nguyễn Văn') AND (dbo.HSCB.Ten
LIKE N'A')
ORDER BY dbo.QTCongTac.TuNgay
24. Bài 5
SELECT dbo.HSCB.MaCB, dbo.HSCB.HoDem, dbo.HSCB.Ten,
dbo.DMChucVu.TenChucVu
FROM dbo.DMChucVu INNER JOIN
dbo.QTCongTac ON dbo.DMChucVu.MaChucVu =
dbo.QTCongTac.MaChucVu INNER JOIN
dbo.HSCB ON dbo.QTCongTac.MaCB = dbo.HSCB.MaCB
WHERE (dbo.DMChucVu.TenChucVu LIKE N'Phó phòng') AND
(dbo.QTCongTac.ToiNgay IS NULL)
25. Bài 6
SELECT dbo.HSCB.MaCB, dbo.HSCB.HoDem, dbo.HSCB.Ten,
dbo.DMChucVu.TenChucVu, dbo.QTCongTac.TuNgay,
dbo.QTCongTac.ToiNgay
FROM dbo.DMChucVu INNER JOIN
dbo.QTCongTac ON dbo.DMChucVu.MaChucVu =
dbo.QTCongTac.MaChucVu INNER JOIN
dbo.HSCB ON dbo.QTCongTac.MaCB = dbo.HSCB.MaCB
WHERE (dbo.DMChucVu.TenChucVu LIKE N'Trưởng Phòng')
26. Bài 7
SELECT MaCB, HoDem, Ten, NgaySinh, GioiTinh, MaQue, NgayVaoDang,
NgayNhapNgu, NgayXuatNgu
FROM dbo.HSCB
WHERE (MaCB IN
(SELECT B.MaCB
FROM (SELECT TOP (1) MaCB, COUNT(MaCB) AS
SoLanLuanChuyen
FROM dbo.QTCongTac
GROUP BY MaCB
ORDER BY SoLanLuanChuyen DESC) AS A
INNER JOIN
(SELECT TOP (100) PERCENT MaCB,
COUNT(MaCB) AS SoLanLuanChuyen
FROM dbo.QTCongTac AS
QTCongTac_1
GROUP BY MaCB
ORDER BY SoLanLuanChuyen DESC) AS B
ON A.SoLanLuanChuyen = B.SoLanLuanChuyen))
27. Bài 8
SELECT ChuyenDen.TongCBChuyenDen, ChuyenDi.TongCBChuyenDi
FROM (SELECT COUNT(dbo.QTCongTac.MaCB) AS
TongCBChuyenDen
FROM dbo.QTCongTac INNER JOIN
dbo.DMDonVi ON dbo.QTCongTac.MaDonVi =
dbo.DMDonVi.MaDonVi
WHERE (YEAR(dbo.QTCongTac.TuNgay) >= 2005) AND
(dbo.DMDonVi.TenDonVi LIKE N'Phòng đào tạo')
GROUP BY dbo.QTCongTac.MaCB) AS ChuyenDen CROSS
JOIN
(SELECT COUNT(QTCongTac_1.MaCB) AS
TongCBChuyenDi
FROM dbo.QTCongTac AS QTCongTac_1 INNER JOIN
dbo.DMDonVi AS DMDonVi_1 ON
QTCongTac_1.MaDonVi = DMDonVi_1.MaDonVi
WHERE (YEAR(QTCongTac_1.ToiNgay) >= 2005) AND
(DMDonVi_1.TenDonVi LIKE N'Phòng đào tạo')
GROUP BY QTCongTac_1.MaCB) AS ChuyenDi
28. Bài 9
SELECT Nam.MaDonVi, Nam.TNam, Nu.TNu, Truong.TTruong, Pho.TPho,
CanBo.TCanBo, Tong.TCB
FROM (SELECT dbo.QTCongTac.MaDonVi,
COUNT(dbo.QTCongTac.MaCB) AS TNam
FROM dbo.QTCongTac INNER JOIN
dbo.HSCB ON dbo.QTCongTac.MaCB =
dbo.HSCB.MaCB
WHERE (dbo.HSCB.GioiTinh = 1)
GROUP BY dbo.QTCongTac.MaDonVi) AS Nam INNER JOIN
(SELECT QTCongTac_5.MaDonVi,
COUNT(QTCongTac_5.MaCB) AS TNu
FROM dbo.QTCongTac AS QTCongTac_5 INNER JOIN
dbo.HSCB AS HSCB_1 ON
QTCongTac_5.MaCB = HSCB_1.MaCB
WHERE (HSCB_1.GioiTinh = 0)
GROUP BY QTCongTac_5.MaDonVi) AS Nu ON
Nam.MaDonVi = Nu.MaDonVi INNER JOIN
(SELECT MaDonVi, COUNT(MaCB) AS TTruong
FROM dbo.QTCongTac AS QTCongTac_4
WHERE (MaChucVu LIKE N'T%')
GROUP BY MaDonVi) AS Truong ON Nam.MaDonVi =
Truong.MaDonVi AND Nu.MaDonVi = Truong.MaDonVi INNER JOIN
(SELECT MaDonVi, COUNT(MaCB) AS TPho
FROM dbo.QTCongTac AS QTCongTac_3
WHERE (MaChucVu LIKE N'P%')
GROUP BY MaDonVi) AS Pho ON Nam.MaDonVi =
Pho.MaDonVi AND Nu.MaDonVi = Pho.MaDonVi AND Truong.MaDonVi =
Pho.MaDonVi INNER JOIN
(SELECT MaDonVi, COUNT(MaCB) AS TCanBo
FROM dbo.QTCongTac AS QTCongTac_2
WHERE (MaChucVu LIKE N'CB%')
GROUP BY MaDonVi) AS CanBo ON Nam.MaDonVi =
CanBo.MaDonVi AND Nu.MaDonVi = CanBo.MaDonVi AND
Truong.MaDonVi = CanBo.MaDonVi AND Pho.MaDonVi =
CanBo.MaDonVi INNER JOIN
(SELECT MaDonVi, COUNT(MaCB) AS TCB
FROM dbo.QTCongTac AS QTCongTac_1
GROUP BY MaDonVi) AS Tong ON Nam.MaDonVi =
Tong.MaDonVi AND Nu.MaDonVi = Tong.MaDonVi AND Truong.MaDonVi =
Tong.MaDonVi AND
Pho.MaDonVi = Tong.MaDonVi AND CanBo.MaDonVi =
Tong.MaDonVi
*.tmp;*.~mp;*.old;*.grp;*.chk;*.wbk;*.bak;~$?*.*
Câu hỏi
Đề bài SQL Server
I. CSDL bán hàng
DM_NhaCungCap
Column Name Data Type Allow Nulls
MaKH char(4)
TenKH nvarchar(150)
DiaChi nvarchar(200)
MaSoThue nvarchar(50)
TaiKhoan nvarchar(100)
TenNganHang nvarchar(200)
GhiChu nvarchar(200)
DM_HangHoa
Column Name Data Type Allow Nulls
MaHang char(10)
TenHang nvarchar(50)
DonViTinh nvarchar(50)
DacTinh nvarchar(200)
DM_HoaDon
Column Name Data Type Allow Nulls
DM_NhanVien
MaHD char(10)
Column Name Data Type Allow Nulls
NgayLapHD smalldatetime
MaNV char(4)
MaKH char(4)
TenNhanVien nvarchar(30)
MaNV char(4)
ChucVu nvarchar(20)
MaLoai char(4)
DM_LoaiPhieuXuatNhap
Column Name Data Type Allow Nulls
MaLoai char(4)
TenLoai nvarch...
GhiChu nvarch...
DIEM
Column Name Data Type Allow Nulls
MaSV char(10)
MaMon char(4)
Diem1 float
Diem2 float
Diem3 float
KHGDHK
Column Name Data Type Allow Nulls
MaHocKy char(5)
MaLop char(4)
MaMon char(4)
MaGV char(4)
MaPhong char(4)
HSSV
Column Name Data Type Allow Nulls
MaSV char(10)
Ho_dem nvarchar(20)
Ten nvarchar(10)
NgaySinh smalldatetime
GioiTinh bit
DMGiaoVien
MaLop char(4)
Column Name Data Type Allow Nulls
MaGV char(4)
MaBoMon char(4)
TenGV nvarchar(50)
HocHam nvarchar(50)
HocVi nvarchar(50)
DMLop
Column Name Data Type Allow Nulls
MaLop char(4)
TenLop nvarchar(100)
MaKhoa char(4)
MaNganh char(4)
DMBoMon
Column Name Data Type Allow Nulls
MaBoMon char(4)
TenBoMon nvarchar(100)
MaKhoa char(4)