Dữ liệu quản lý vé cụm rạp chiếu phim CumRap (MaCum varchar(5), TenCum nvarchar(50), DiaChi nvarchar(100)) Rap (MaRap varchar(5), TongGhe int, MaCum varchar(5)) TongGhe: tổng số chổ ngồi LoaiGhe (MaLoaiGhe varchar(5), TenLoaiGhe nvarchar(50) , SLGhe int) Ví dụ: Loại ghế đôi thật sư ghế đánh số số lượng ghế (Slghe) RapGhe (MaRap varchar(5), MaHang char(1), SoGheBatDau int, SoGheKetThuc int, MaLoaiGhe varchar(5)) TheLoai (MaTheLoai varchar(5), TenTheLoai nvarchar(50)) Phim (MaPhim varchar(10), TenPhim nvarchar(50), MaTheLoaiChinh varchar(5), ThoiLuong int, CoLa3D bit, CoLongTieng bit) PhimTheLoai (MaPhim varchar(10), MaTheLoai varchar(5)) KeHoach (MaPhim varchar(10), MaCum varchar(5), NgayKhoiChieu date, NgayKetThuc date, GhiChu nvarchar(100)) SuatChieu (MaSuat varchar(3), GioBatDau int, PhutBatDau int) LichChieu (MaPhim varchar(10), MaRap varchar(5), NgayChieu date, ChuoiMaSuat nvarchar(100)) ChuoiMaSuat: Ghi nhận dãy mã suất chiếu ngày mà rạp chiếu NgheNghiep (MaNghe varchar(5), TenNghe nvarchar(100)) ThanhPho (MaThanhPho varchar(5), TenThanhPho nvarchar(100)) Quan (MaQuan varchar(5), TenQuan nvarchar(100), MaThanhPho varchar(5)) ThanhVien (MaThanhVien varchar(5), TenThanhVien nvarchar(50), NamSinh int, GioiTinh bit, MaQuan varchar(5), MaNghe varchar(5)) BangGia (MaLoaiGhe varchar(5), MaSuat varchar(3), NgayBatDau date, Gia float, GhiChu nvarchar(100)) Ve (MaSoVe varchar(20), MaPhim varchar(10), MaRap varchar(5), NgayChieu date, NgayMua date, MaSuat varchar(3), MaHang char(1), So int, MaLoaiGhe varchar(5), MaThanhVien varchar(5), GiaGoc float, SoTienPhuThu float, SoTienGiam float) GiamGia (MaGiam int, MaPhim varchar(10), MaRap varchar(5), Thu int, Ngay date, MaSuat varchar(3), MaLoaiGhe varchar(5), NgayBatDauApDung date, LoaiHinhGiam int, GiaMoi float, PhanTramGiam float) GiamGiaTheoNguoi (MaGiam int, Tuoi int, GioiTinh bit, MaNghe nvarchar(5), NgayBatDauApDung date, LoaiHinhGiam int, GiaMoi float, PhanTramGiam float) Câu hỏi Viết câu truy vấn cho danh sách gồm mã phim, tên phim, tổng số thể loại phim (Quy định: giá trị trường mã thể loại phim bắt buộc phải nằm danh sách mã thể loại bảng PhimTheLoai phim đó) Select p.maphim, p.tenphim, count(ptl.matheloai) From phim p inner join phimtheloai ptl on ptl.maphim = p.maphim Group by p.maphim, p.tenphim Viết câu truy vấn cho danh sách gồm mã phim, tên phim, tổng số thể loại phim (Quy định: giá trị trường mã thể loại phim bắt buộc không nằm danh sách mã thể loại bảng PhimTheLoai phim đó, mã thể loại khơng thể giá trị rổng) Select a.maphim, a.tenphim, count(distinct a.matheloai) From ( Select maphim, tenphim, matheloaichinh as matheloai From phim Union all Select p.maphim, p.tenphim, ptl.matheloai from phim p inner join phimtheloai ptl on ptl.maphim = p.maphim ) as a Group by a.maphim, a.tenphim Câu làm ln cho trường hợp mã thể loại thuộc vào hay không thuộc vào bảng phim thể loại Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà năm 2015 có kế hoạch chiếu Select distinct p.maphim, p.tenphim From phim p inner join kehoach k on k.maphim = p.maphim Where not (k.ngaykhoichieu > ‘2015-12-31’ or k.ngaybatdau < ‘2015-1-1’) Group by p.maphim, p.tenphim Having count(k.macum) > Nếu câu hỏi có cụm chiếu khác năm 2015 đáp án Select distinct p.maphim, p.tenphim From phim p inner join kehoach k on k.maphim = p.maphim Where not (k.ngaykhoichieu > ‘2015-12-31’ or k.ngaybatdau < ‘2015-1-1’) Group by p.maphim, p.tenphim Having count(distinct k.macum) > Viết câu truy vấn cho danh sách gồm mã quận, tên quận, tên thành phố mà có số lượng thành viên nam 30 tuổi 100 người Select q.maquan, q.tenquan, tp.tenthanhpho From (Thanhpho inner join quan q on q.mathanhpho = tp.mathanhpho) Inner join thanhvien tv on tv.maquan = q.maquan Where (year(getdate()) – tv.namsinh < 30) and tv.GioiTinh=1 Group by q.maquan, q.tenquan, tp.tenthanhpho Having count(tv.mathanhvien) > 100 Viết câu truy vấn cho danh sách gồm mã cụm, tên cụm mà có kế hoạch chiếu nhiều phim Select c.macum, c.tencum, count(distinct k.maphim) as ts into #b1 From kehoach k inner join cumrap c on c.macum = k.macum Group by c.macum, c.tencum Select * from #b1 where ts = (select max(ts) from #b1) Viết câu truy vấn cho danh sách gồm ngày chiếu mà có số lượng người thực xem phim nhiều quý năm 2015 (Lưu ý: Nếu mã loại ghế vé có SLGhe = n, hiểu có n người thực xem) Select v.ngaychieu, sum(g.SLGhe) as tsnguoi into #b1 From ve v inner join loaighe g on g.maloaighe = v.maloaighe Where year(v.ngaychieu) = 2015 and month(v.ngaychieu) between 10 and 12 Group by v.ngaychieu Select * from #b1 where tsnguoi = (select max(tsnguoi) from #b1) Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà có tổng số vé loại ghế đơi (mã loại ghế = “GĐI”) Select p.maphim, p.tenphim, count(v.masove) as tsgd into #b1 From ve v inner join phim p on p.maphim = v.maphim Where v.maloaighe = ‘GDI’ Group by p.maphim, p.tenphim Select * from #b1 where tsgd = (select max(tsgd) from #b1) Viết câu truy vấn cho danh sách gồm mã cụm, tên cụm, tổng số ngày có lịch chiếu phim có tên “Em bà ngoại anh” 20 ngày Select c.macum, c.tencum From ((phim p inner join lichchieu l on l.maphim = p.maphim) Iner join rap r on r.marap = l.marap ) Inner join cumrap c on c.macum = r.macum Where p.tenphim = ‘Em la ba ngoai cua anh’ Having count(distinct l.ngaychieu) > 20 Cịn lại bạn tự làm Viết câu truy vấn cho danh sách gồm mã phim, tên phim, ngày chiếu, mã rạp, mã suất chiếu mà khơng cịn chổ ngồi dư (Lưu ý: Nếu mã loại ghế vé có SLGhe = n, hiểu có n chổ ngồi mua) 10.Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà ngày chiếu, suất chiếu rạp không dư chổ ngồi 11.Viết câu truy vấn cho danh sách gồm mã rạp, tên cụm rạp, mã loại ghế, tên loại ghế, tổng số ghế thuộc loại ghế rạp (Quy định: hàng có mã loại ghế t với số ghế bắt đầu x số ghế kết thúc y, SLGhe loại ghế t hàng z, liệu ln đảm bảo phần dư (y-x + 1)/z (y-x + 1)/z tổng số ghế thuộc loại ghế t) 12.Viết câu truy vấn cho danh sách gồm mã rạp, tên cụm rạp mà có tổng số ghế thuộc loại ghế có mã “GGĐ” nhiều 13.Viết câu truy vấn cho danh sách gồm mã cụm, tên cụm mà có tổng số chổ ngồi nhiều (lưu ý khái niệm: tổng số chổ ngồi tổng số ghế thuộc mã loại ghế) ... p inner join kehoach k on k.maphim = p.maphim Where not (k.ngaykhoichieu > ‘201 5-1 2-3 1’ or k.ngaybatdau < ‘201 5-1 -1 ’) Group by p.maphim, p.tenphim Having count(k.macum) > Nếu câu hỏi có cụm chiếu... p inner join kehoach k on k.maphim = p.maphim Where not (k.ngaykhoichieu > ‘201 5-1 2-3 1’ or k.ngaybatdau < ‘201 5-1 -1 ’) Group by p.maphim, p.tenphim Having count(distinct k.macum) > Viết câu truy...GiamGiaTheoNguoi (MaGiam int, Tuoi int, GioiTinh bit, MaNghe nvarchar(5), NgayBatDauApDung date, LoaiHinhGiam int, GiaMoi float, PhanTramGiam float) Câu hỏi Viết câu truy