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ã thành viên, tên thành viên mà xem hết tất phim khởi chiếu năm 2015 (được khởi chiếu hiểu chiếu thật) b1: đếm những phim khởi chiếu năm 2015 b2: đếm xem nhũng thành viên có sos lượng phim coi bằng vói số lượng phim khởi chiếu năm 2015 Select tv.mathanhvien, tv.tenthanhvien From thanhvien tv inner join ve v on v.mathanhvien = tv.mathanhvien Where year(v.ngaychieu) = 2015 Group by tv.mathanhvien, tv.tenthanhvien Having count(distinct v.maphim) = ( Select count(distinct maphim) as tsphim From lichchieu Where year(ngaychieu) = 2015 ) Viết câu truy vấn cho danh sách gồm mã rạp, mã cụm mà có lịch chiếu phim (có thể loại hành động – ‘HĐ’) khơng có lịch chiếu phim (có thể lơại hài – ‘HH’) năm 2015 Select r.marap, r.macum From (lichchieu l inner join rap r on r.marap = l.marap) Inner join phim p on p.maphim = l.maphim Where p.matheloaichinh = ‘HD’ and r.marap not in ( Select l.marap From lichchieu l Inner join phim p on p.maphim = l.maphim Where p.matheloaichinh = ‘HH’ and year(l.ngaychieu) = 2015 ) Viết câu truy vấn cho danh sách thành viên gồm mã thành viên, tên thành viên mà có xem phim “Goodbye cô ba” “Quả tim sến” tháng giêng năm 2015 Select tv.mathanhvien, tv.tenthanhvien From (ve v inner join thanhvien tv on tv.mathanhvien = v.mathanhvien) Inner join phim p on p.maphim = v.maphim Where p.tenphim = ‘Goodbye co ba’ and v.ngaychieu between ‘2015-1-1’ and ‘2015-1-31’ Intersect Select tv.mathanhvien, tv.tenthanhvien From (ve v inner join thanhvien tv on tv.mathanhvien = v.mathanhvien) Inner join phim p on p.maphim = v.maphim Where p.tenphim = ‘Qua tim sen’ and v.ngaychieu between ‘2015-1-1’ and ‘2015-1-31’ Intersect: kết hợp tập kết hai hoặc nhiều câu truy vấn trả ghi xuất hai câu truy vấn Lưu ý: Cả hai câu truy vấn phải có cùng sớ lượng, thứ tự cột Kiểu liệu phải tương ứng hoặc tương thích với Tóm lại chúng phải na ná ??????????????????????/ Viết câu truy vấn cho danh sách gồm mã suất, chiếu, phút chiếu mà có đơn giá vé cao suất chiếu đó, đồng thời cho biết mã loại ghế ngày bắt đầu tính đơn giá vé cao Biết đơn giá vé giá theo bảng giá chia cho số chổ ngồi loại ghế giá vé Cau tương đương cho mã suất chiếu, chiếu, phút chiếu, mã loại ghế có đơn giá cao (liệt kê thêm thơng tin phụ ngày bắt đầu tính giá đó) B1: lấy giá cao theo suất chiếu bảng giá Select s.masuat, s.giobatdau, s.phutbatdau, max(b.gia/g.slghe) as giacaotheosuat into #b1 From (banggia b inner join suatchieu s on s.masuat = b.masuat) Inner join loaighe g on g.maloaighe = b.maloaighe Group by s.masuat, s.giobatdau, s.phutbatdau -> In nhóm suất chiếu cùng thì vé cao B2: Lấy suất chiếu mã loại ghế có giá vé = với giá cao với cùng mã suất Select s.masuat, s.giobatdau, s.phutbatdau, b.maloaighe, (b.gia/g.slghe) as giatheosuat_loaighe, b.ngaybatdau From (banggia b inner join suatchieu s on s.masuat = b.masuat) Inner join loaighe g on g.maloaighe = b.maloaighe where (b.gia/g.slghe) = ( select t.giacaotheosuat from #b1 as t where t.masuat = s.masuat ->Lọc những giá trị cao theo xuất thành một hàng ) >tìm những giá vé nào mã với cái giá vé cao nhất nhóm cụm Các bạn tự làm câu lại Viết câu truy vấn cho danh sách gồm ngày tại, suất chiếu lúc 19:30, mã loại ghế đôi (‘GĐI’), giá vé (Biết bảng giá không ghi nhận giá tương lai – tức khơng ghi nhận dịng ngày bắt đầu sau ngày tại) Viết câu truy vấn cho danh sách gồm ngày tại, suất chiếu lúc 19:30, mã loại ghế đôi (‘GĐI’), giá vé (Biết bảng giá ghi nhận giá tương lai – tức ghi nhận dịng ngày bắt đầu sau ngày tại) Viết câu truy vấn cho danh sách gồm ngày 14/2/2015, suất chiếu lúc 19:30, mã loại ghế đôi (‘GĐI’), giá vé Các kiểu JOIN Cách khớp nối bảng (sử dụng điều kiện khớp nối mệnh đề where) sử dụng với khớp nối thông thường, thực tế SQL sử dụng từ khóa join với nhiều cách kết nới bảng khách Gồm có: • inner join : trả ghi có giá trị phù hợp hai bảng • left join : ghi bảng bên trái trả về, ghi phù hợp với ghi bên phải thì bổ sung thêm liệu từ ghi bảng bên phải (nếu khơng có thì nhận NULL) • right join : ghi bảng bên phải trả về, sau bổ sung liệu phù hợp từ bảng bên trái • outer join : (full join) ghi bảng trái bảng phải kết hợp lại (nhớ lại phép giao hai tập hợp) ... p on p.maphim = v.maphim Where p.tenphim = ‘Goodbye co ba’ and v.ngaychieu between ‘201 5-1 -1 ’ and ‘201 5-1 -3 1’ Intersect Select tv.mathanhvien, tv.tenthanhvien From (ve v inner join thanhvien tv... phim p on p.maphim = v.maphim Where p.tenphim = ‘Qua tim sen’ and v.ngaychieu between ‘201 5-1 -1 ’ and ‘201 5-1 -3 1’ Intersect: kết hợp tập kết hai hoặc nhiều câu truy vấn trả ghi xuất hai 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