Thiết kế các kiểu
truy vấn khác
Parameter query
Crosstab query
Action query
PARAMETER QUERY
Tin quản lý 2 - Query 3
Parameter Query
¡ ĐẶT VẤN ĐỀ
l Giả sử người dùng có các yêu cầu thông tin
ØCho biết tổng số tiền bán hàng của Tháng 1
ØCho biết tổng số tiền bán hàng của Tháng 4
Ø…
ØTính số tiền của hóa đơn HD001
ØTính số tiền của hóa đơn HD015
Ø…
¡ Nhận xét: các yêu cầu từng nhóm tương
tự nhau về mặt thiết kế, chỉ khác điều
kiện lọc thông tin
Tin quản lý 2 - Query 4
Giải pháp?
¡ Mỗi yêu cầu thiết kế 1 truy vấn?
¡ Nhược điểm
l Tốn thời gian
l Tốn bộ nhớ
¡ Liệu có cách làm tổng quát không?
l Chỉ có chung một thiết kế
l Điều kiện thay đổi mỗi khi thực hiện truy vấn đó.
ð Điều kiện = Parameter (Tham số ầu vào)
Tin quản lý 2 - Query 5
Cách tạo Parameter query
¡ Xác định khuôn dạng chung (mẫu thiết kế) của
một lớp yêu cầu
l Xây dựng truy vấn theo cách thông thường
¡ Đặt Parameter vào vị trí cần tham số thay đổi khi
thực hiện query
l Parameter chính là một biến sẽ nhận giá trị khi
thực hiện
¡ Thực hiện truy vấn và nhập giá trị cho Parameter
thông qua cửa sổ
Tin quản lý 2 - Query 6
Ví dụ 3
¡ Cho biết tổng tiền của 1 hóa đơn bất kỳ
¡ Phân tích
l Thiết kế truy vấn: tính tổng tiền của từng hóa
đơn
l Xđ bảng: CT_Hoadon, Hanghoa
l Xđ trường: SoHD, Thanhtien
l Chọn Total query: Groupby theo SoHD và
chọn Sum cho Thanhtien
l Đặt Parameter tại cột SoHD trên dòng Criteria
với tên [Nhap so HD can xem]
Tin quản lý 2 - Query 7
Ví dụ 3 (tiếp)
Tham số thay đổi khi
thực hiện thường là
điều kiện lọc dữ liệu
Cửa sổ để nhập giá
trị vào tham số khi
thực hiện truy vấn
Tin quản lý 2 - Query 8
Ví dụ 4
¡ Tính tổng số tiền của 1 khách hàng bất kỳ
trong một tháng nào đó.
¡ Phân tích
l Tính tổng số tiền của từng khách hàng theo
từng tháng.
l Chọn Total query
l Đặt lần lượt các Parameter
¡ [Nhap MaKH] trên cột Mã KH; nếu NSD không
biết đầy đủ mã KH thì Like “*”&[Nhap MaKH]
¡ [Nhap thang] trên cột Tháng
Tin quản lý 2 - Query 9
Ví dụ 4 (tiếp)
Các Parameter lần
lượt của truy vấn
Các cửa sổ yêu cầu
nhập giá trị Parameter
khi thực hiện truy vấn
CROSSTAB QUERY
Tin quản lý 2 - Query 11
CROSSTAB QUERY
¡ NSD muốn có thông tin phân tích, tổng
hợp từ một nhóm bản ghi
¡ Kết quả được trình bày dưới dạng bảng 2
chiều
ð Dễ so sánh các số liệu theo chiều ngang
hay chiều dọc
ð Tương tự như Pivot Table trong Excel
Tin quản lý 2 - Query 12
Dữ liệu thô Dữ liệu đã được tổng hợp theo tháng
Tin quản lý 2 - Query 13
Dữ liệu đã được phân tích, tổng hợp theo tháng cho từng mặt hàng
Tin quản lý 2 - Query 14
Cấu trúc của Crosstab
Giá trị nkGiá trị k1Tiêu đề dòng k
…
…
Giá trị 22
Tiêu đề 2
Tiêu đề dòng 2
Giá trị 11Tiêu đề dòng 1
Tiêu đề nTiêu đề 1
Value
Column Heading
Row Heading
Tin quản lý 2 - Query 15
Cấu trúc của Crosstab
¡ Dữ liệu trong Crosstab được gộp nhóm
¡ Trường được chọn làm Column heading
’ Giá trị của trường đó làm tiêu đề cột
¡ Trường được chọn làm Row heading
’ Giá trị của trường đó làm tiêu đề hàng
¡ Trường được chọn là Value (dữ liệu phân tích) ’
Giá trị của trường được tính toán, xử lý.
Giá trị nkGiá trị k1Tiêu đề dòng k
…
…
Giá trị 22
Tiêu đề 2
Tiêu đề dòng 2
Giá trị 11Tiêu đề dòng 1
Tiêu đề nTiêu đề 1
Tin quản lý 2 - Query 16
Yêu cầu của Crosstab
¡ Crosstab đúng yêu cầu khi
l Chỉ có 1 trường làm Column Heading
l Có thể có nhiều trường làm Row Heading
l Chỉ có 1 trường làm Value
¡ Các thao tác trên Crosstab làm tương tự
như Total Query
Tin quản lý 2 - Query 17
Ví dụ 1
¡ Yêu cầu: Tính Tổng số tiền bán hàng của
từng mặt hàng theo từng tháng. Kết quả
trình bày dữ liệu với tháng làm Column
Heading
¡ Phân tích
l Xđ bảng: Hoadon, CT_hoadon, Hanghoa
l Xđ trường: Thang=Month(Ngayban), Mã
hàng, Tên hàng, Thành tiền
l Chọn Query - Crosstab query
l Column Heading: Thang; Row Heading:
Mã hàng, Tên hàng; Value: Thành tiền
Tin quản lý 2 - Query 18
Ví dụ 1 (tiếp)
Các trường làm tiêu
đề thường chọn gộp
nhóm (Groupby)
Trường dữ liệu
phân tích chọn 1
hàm gộp nhóm
Chỉ định cấu trúc
của Crosstab
Tin quản lý 2 - Query 19
Ví dụ 2
¡ Tính Tổng số tiền bán hàng của từng mặt
hàng theo từng tháng và tổng số tiền bán
của mặt hàng đó. Kết quả trình bày dữ liệu
với tháng làm Column Heading
¡ Phân tích
l Tương tự ví dụ 1
l Khác: Tổng số tiền bán hàng của mặt hàng ’
Tính tổng dữ liệu theo dòng
Tin quản lý 2 - Query 20
Ví dụ 2(tiếp)
¡ Trường làm Row Heading có thể chọn Hàm
gộp nhóm để có giá trị gộp theo dòng.
Chọn Sum tại dòng Total để
tính toán số liệu theo dòng
Tin quản lý 2 - Query 21
Một vài cách dùng khác
¡ Có thể hiển thị xâu ký tự nào đó trong tên
tiêu đề cột/ trường.
l Ví dụ: Tháng 1, Tháng 2, … với “Tháng” do
người dùng kết hợp với giá trị tính được từ
biểu thức month(Ngayban)
ðDùng cộng xâu “Tháng ”&month(Ngayban)
ðVới & là toán tử nối 2 xâu
ACTION QUERY
Tin quản lý 2 - Query 23
Action query
¡ Các query thực hiện các thao tác thay đổi
dữ liệu trên 1 nhóm các bản ghi
¡ Có 3 kiểu Action query
l Update query: Cập nhật, thay đổi giá trị
trong một vài trường của 1 nhóm bản ghi
l Delete query: Xóa gi 1 số bản ghi trong
bảng theo yêu cầu
l Insert (Append) query: Thêm vào bảng dữ
liệu nào đó 1 nhóm các bản ghi
Tin quản lý 2 - Query 24
UPDATE QUERY – VÍ DỤ
¡ Đơn giá của các mặt hàng thuộc loại Rượu
hay Bia đều được tăng lên 20%.
¡ Phân tích
l Bảng được cập nhật: Hàng hóa
l Bản ghi được cập nhật: Mặt hàng thuộc loại
Rượu hay Bia.
l Trường được cập nhật: Dongia*(1+20%)
l Các bảng tham gia truy vấn
¡ Hàng hóa
¡ Loại hàng
l Loại truy vấn: chọn Update query
Tin quản lý 2 - Query 25