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)) ngồi TongGhe: tổng số chổ 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ã cụm, tên cụm mà có tồn rạp với tổng ghế rạp từ 50 đến 150 ghế có tồn rạp có loại ghế có mã “GGĐ” Select From Where c.macum, c.tencum (cumrap c inner join rap r on r.macum = c.macum) Inner join rapghe rg on rg.marap = r.marap r.tongghe between 50 and 150 or Rg.maloaighe = ‘GGD’ Viết câu truy vấn cho danh sách gồm mã phim, tên phim, thời lượng phim mà phim có thuộc vào thể loại phim hài (mã thể loại = “HH”) đồng thời phim có chiếu cụm rạp có tên “Lotte Tân Phú Tân” (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 đó) Nếu hiểu có chiếu thực chiếu ta có kết Select p.maphim, p.tenphim,p.thoiluong From (((phim p inner join phimtheloai pt on pt.maphim = p.maphim) Inner join lichchieu l on l.maphim = p.maphim) Inner join rap r on r.marap = l.marap ) Inner join cumrap c on c.macum = r.macum Where pt.matheloai = ‘HH’ and c.tencum = ‘Lotte Taan Phus Taan’ Viết câu truy vấn cho danh sách gồm mã phim, tên phim, thời lượng phim mà phim có thuộc vào thể loại phim hài (mã thể loại = “HH”) đồng thời phim có chiếu vào ngày 15/1/2016 (Quy định: giá trị trường mã thể loại phim phải khơng nằm danh sách mã thể loại bảng PhimTheLoai phim đó) * Phải dùng left join để nhận phim lloai mà khơng loại phụ khác Sử dụng left join lấy kết quả pjim và bổ sung them dữ liệu của bảng phim thể loại Một phim bắt buộc có thể loại chính có thể không có mã thể loại(tức thể loại phụ) vì vậy các hàng cột không tương ứng nên không thể dùng inner join mà phải dùng left join để tổng hợp dữ liệu Select p.maphim, p.tenphim,p.thoiluong From (phim p left join phimtheloai pt on pt.maphim = p.maphim) Inner join lichchieu l on l.maphim = p.maphim Where (pt.matheloai = ‘HH’ or p.MaTheLoaiChinh = ‘HH’) and l.ngaychieu = datefromparts(2016,1,15) Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà có chiếu suất 30 phút cụm rạp có tên “Lotte Tân Phú Tân” Select From where (((phim p inner join lichchieu l on l.maphim = p.maphim) inner join rap r on r.marap = l.marap) inner join cumrap c on c.macum = r.macum) inner join suatchieu s on (‘;’+l.chuoisuatchieu+’;’) like (‘%;’ + s.masuat + ‘;%’) c.tencum = ‘Lotte Tan Phu Tan’ and s.giobatdau = and s.phutbatdau = 30 Luu ý cách kết chuoi mã suất thêm dấu ‘;’ đầu (vì ngăn cách suất chiếu ‘;’) phải có dạng chứa mã suất chiếu Lấy ví dụ: chuoisuatchieu = ‘S1;S2;S4’ ta kết với suất chiếu ‘S2’ Khi ta kết theo điều kiện: ‘;S1;S2;S4;’ like ‘%;S2;%’ chuoisuatchieu se kết dòng S1 S2 S4 Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà có chiếu tháng năm 2016 cụm rạp có tên cụm “Lotte Nhuận Bình” Xem có chiếu chiếu thực Select distinct p.maphim, p.tenphim From ((phim p inner join lichchieu l on l.maphim = p.maphim) Inner join rap r on r.marap = l.marap) Inner join cumrap c on c.macum = r.macum Where c.tencum = ‘Lotte Nhuan Binh’ and Year (l.ngaychieu) = 2016 and month(l.ngaychieu) = Nếu kế hoạch chiếu so sánh đoạn thời gian khởi chiếu kết thúc đoạn 1/1/2016 đến 31/1/2016 Select distinct p.maphim, p.tenphim From (phim p inner join kehoach k on k.maphim = p.maphim) Inner join cumrap c on c.macum = k.macum Where c.tencum = ‘Lotte Nhuan Binh’ and Not (k.ngayketthuc < ‘2016-1-1’ or k.ngaykhoichieu > ‘20161-31’) Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà có chiếu tháng năm 2016 cụm rạp có mã “LNB” vào suất chiếu sáng (tức trước 12 trưa) Select distinct p.maphim, p.tenphim From ((phim p inner join lichchieu l on l.maphim = p.maphim) Inner join rap r on r.marap = l.marap) Inner join suatchieu s on (‘;’+l.chuoisuatchieu+’;’) like (‘%;’ + s.masuat + ‘; %’) Where r.macum = ‘LNB’ and Year (l.ngaychieu) = 2016 and month(l.ngaychieu) = and s.giobatdau < 12 Viết câu truy vấn cho danh sách gồm mã thành viên, tên thành viên mà có xem phim tên “Vấn Điệp” sau 19 cụm rạp có tên “Lotte Nam Sài” Select From ((((thanhvien tv inner join ve v on v.mathanhvien = tv.mathanhvien) Inner join phim p on p.maphim = v.maphim) Inner join rap r on r.marap = v.marap) Inner join cumrap c on c.macum = r.macum) Inner join suatchieu s on s.masuat = v.masuat Where c.tencum = ‘Lotte Nam Sai’ and p.tenphim = ‘Van Diep’ and (s.giobatdau > 19 or (s.giobatdau = 19 and s.phutbatdau > 0)) Viết câu truy vấn cho danh sách gồm mã cụm, tên cụm mà không chiếu phim có tên “Tơi khơng thấy hoa vàng” Xem tren lichj chieeus Select c.* from cumrap c Where c.macum not in ( Select r.macum From (lichchieu l inner join phim p on p.maphim = l.maphim) Inner join rap r on r.marap = l.marap Where p.tenphim = ‘toi khong thay hoa vang’ ) Viết câu truy vấn cho danh sách gồm mã suất chiếu, chiếu, phút chiếu mà khơng có người xem (khơng có vé) phim có tên “Em bà ngoại anh” cụm rạp có mã “LNB” Select s.* from suatchieu s Where s.masuat not in ( Select From v.masuat ((ve v inner join phim p on p.maphim = v.maphim) Inner join rap r on r.marap = v.marap) Where anh’ r.macum = ‘LNB’ and p.tenphim = ‘Em la ba ngoai cua ) 10.Viết câu truy vấn cho danh sách gồm mã quận, tên quận mà khơng có thành viên nữ 45 tuổi Select * from quan Where maquan not in ( Select tv.maquan From thanhvien tv Where tv.gioitinh = and year(getdate()) - tv.namsinh > 45 ) ... Nhuan Binh’ and Not (k.ngayketthuc < ‘ 201 6-1 -1 ’ or k.ngaykhoichieu > ‘ 2016 1-3 1’) Viết câu truy vấn cho danh sách gồm mã phim, tên phim mà có chiếu tháng năm 2016 cụm rạp có mã “LNB” vào suất chiếu... Nhuan Binh’ and Year (l.ngaychieu) = 2016 and month(l.ngaychieu) = Nếu kế hoạch chiếu so sánh đoạn thời gian khởi chiếu kết thúc đoạn 1/1/ 2016 đến 31/1/ 2016 Select distinct p.maphim, p.tenphim... loại(tức thể loại phụ) vì vậy các hàng cột không tương ứng nên không thể du? ?ng inner join mà phải du? ?ng left join để tổng hợp dữ liệu Select p.maphim, p.tenphim,p.thoiluong From