Bài 3: Sử dụng hàm và biểu thức có sẵn trong truy vấn dữ liệu

Một phần của tài liệu Giáo trình hướng dẫn thực hành ứng dụng dữ liệu web (Trang 76 - 79)

Một số hàm thường dùng

- Hàm round() avg()

- Hàm day() month() year()

- Hàm date() curdate() datediff()

- Hàm format() date_format()

- Hàm length() upper() lower()

- Hàm trim() left() right()

- Hàm concat()

- Hàm if – case ….. when …. then

Yêu cầu 1:

Cho biết giá trị trung bình của các hoá đơn được làm tròn đến hàng nghìn

Hướng dẫn giải

Cần cái gì? -> Giá trị trung bình của các hoá đơn Từ bảng nào -> CT_HOADON

(77) Cách hiển thị -> Giá trị được làm tròn đến hàng nghìn Select round(avg(So_luong * Don_gia), -3) as Gia_tri_trung_binh From CT_HOADON

Yêu cầu 2:

Liệt kê danh sách các hoá đơn trong tháng 7 năm 2007

Hướng dẫn giải

Cần cái gì? -> Thông tin hoá đơn Từ bảng nào -> HOADON

Điều kiện gì -> Tháng 7 năm 2007

Select * From HOADON Where month(Ngay_hd) = 7 and year(Ngay_hd)=2007

Yêu cầu 3:

Liệt kê danh sách các hãng sữa có tên hãng sữa, địa chỉ, điện thoại, trong đó tên hãng sữa in HOA

Hướng dẫn giải

Cần cái gì? -> Tên hãng sữa, địa chỉ, điện thoại Từ bảng nào -> HANG_SUA

Cách hiển thị -> Tên hãng sữa: in HOA

Select upper(Ten_hang_sua), Dia_chi, Dien_thoai From HANG_SUA

Yêu cầu 4:

Liệt kê danh sách sữa đã bán được trong tháng 8 năm 2007 có tên sữa, trọng lượng, đơn giá; trong đó: trọng lượng có thêm ‘gr’, đơn giá có định dạng tiền tệ và có thêm ‘VNĐ’

Hướng dẫn giải

Cần cái gì? -> Tên sữa, trọng lượng, đơn giá Từ bảng nào -> SUA, HOA_DON, CT_HOADON Điều kiện gì -> Tháng 8/2007

Cách hiển thị -> Trọng lượng có ‘gr’, đơn giá dạng tiền tệ có thêm ‘VNĐ’ (adsbygoogle = window.adsbygoogle || []).push({});

Select Ten_sua, concat(Trong_luong, ‘gr’), concat(format(c.Don_gia,0), ‘VNĐ’) From CT_HOADON c inner join HOA_DON h on (c.So_hoa_don = h.So_hoa_don) inner join SUA s on (s.Ma_sua = c.Ma_sua) Where

month(Ngay_hd) = 8 and year(Ngay_hd) = 2007

(78) Liệt kê danh sách sữa có trọng lượng từ 400 gr đến 500 gr; có thêm cột đánh giá như sau: nếu giá sữa nhỏ hơn 100000 VNĐ thì đánh giá là ‘Sữa trung bình’, nếu giá trên 100000 VNĐ thì đánh giá là ‘Sữa giá cao’

Hướng dẫn giải

Cần cái gì? -> Thông tin sữa và đánh giá Từ bảng nào -> SUA

Điều kiện gì -> Trọng lượng 400 gr -> 500 gr

Cột đánh giá như thế nào -> <100000 -> ‘Sữa giá trung bình’; >=100000 - > ‘Sữa giá cao’

Select *, if(Don_gia<100000, ‘Sữa trung bình’, ‘Sữa giá cao’) as danh_gia From SUA Where Trong_luong between 400 and 500

Yêu cầu 6:

Liệt kê danh sách hoá đơn kèm theo ngày được định dạng như sau ‘Thứ <tên thứ Tiếng Việt> ngày … tháng … năm ….’; sắp theo ngày tăng dần

Hướng dẫn giải

Cần cái gì? -> Danh sách hoá đơn và ngày được định dạng Từ bảng nào -> HOADON

Cách hiển thị -> Ngày hoá đơn: sắp xếp tăng

Select *, concat(CASE WEEKDAY(‘Ngay_hd’) when 1 then ‘Thứ Hai’

When 2 then ‘Thứ Ba’

When 3 then ‘Thứ Tư’ When 4 then ‘Thứ Năm’ When 5 then ‘Thứ Sáu’ When 6 then ‘Thứ Bảy’ When 0 then ‘Chủ nhật’ END, date_format(‘Ngay_hd’, ‘ngay %d thang %m năm %y’)) as thu_hoan_chinh From HOADON Order by Ngay_hd

Yêu cầu 7:

Thống kê số khách hàng nam – Số khách hàng nữ và tổng số khách hàng

Hướng dẫn giải

Thống kê cái gì -> Số khách hàng nam, nữ, tổng khách hàng Từ bảng nào -> KHACH_HANG

Select sum(if(‘PHAI’ = 1,1,0)) As Tong_nu, sum(if(‘PHAI’=0,1,0)) As Tong_nam, count(*) as Tong_khach_hang From KHACH_HANG

(79)

Bài 4: Truy vấn có nhóm và thống kê dữ liệu

Một phần của tài liệu Giáo trình hướng dẫn thực hành ứng dụng dữ liệu web (Trang 76 - 79)