Saturday, April 07, 2012 Tin Quản Lý - Visual Foxpro
BÀI 3
SẮP XẾP, TÌM KIẾM
THỐNG KÊ DỮ LIỆU
Nhóm TIN QUẢN LÝ - BM TIN - Khoa Toán Tin học
Đại học Thăng Long
Saturday, April 07, 2012 Tin Quản Lý - Visual Foxpro
NỘI DUNG
Sắp xếp dữ liệu (Sorting)
Tìm kiếm dữ liệu (Finding)
Một số câu lệnh thống kê dữ liệu
Saturday, April 07, 2012 Tin Quản Lý - Visual Foxpro
NỘI DUNG
Sắp xếp dữ liệu
Lệnh SORT
Lệnh INDEX
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (SORTING)
• Một số khái niệm
– Trường khóa sắp xếp (Keys)
– Kiểu sắp xếp
• Ascending (Tăng dần – ngầm định)
• Descending (Giảm dần)
• Có thể sử dụng
– /A thay cho Ascending
– /D thay cho Descending
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Câu lệnh SORT
– Cú pháp
SORT ON <Trường khóa sắp xếp>/< kiểu sắp xếp >
[FOR< biểu thức Logic >]
[FIELDS <DS trường>]
TO <Tên tệp kết quả sắp xếp>
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Ví dụ:
Use DSSV
Sort On MASV For Lop = “Q20” To DSSV_Q20
Sort On MASV DESC For Lop = “T20” To DSSV_T20
Use DSSV_Q20
Browse
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Câu lệnh INDEX
Để sắp xếp bảng DL bằng câu lệnh Index, tiến hành sắp xếp
qua 2 bước
Bước 1: Tạo tệp chỉ mục (index file) hoặc thẻ sắp xếp (tag)
trên trường khóa sắp xếp theo yêu cầu sắp xếp
Bước 2: Mở bảng dữ liệu cần sắp xếp theo tệp chỉ mục (hoặc
thẻ sắp xếp)
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Câu lệnh INDEX – sắp xếp theo tệp chỉ mục (index file)
B1: INDEX ON <Trường khóa>[/kiểu sắp xếp]
TO <Tệp chỉ mục>
B2: USE <Tên tệp> INDEX <Tệp chỉ mục>
Tệp chỉ mục: *.idx
Chú ý: Đối với trường khóa là kiểu số (Numeric), khi sắp xếp giảm dần, ta dùng
dấu “-” đằng trước trường sắp xếp thay cho từ khóa DESC
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Câu lệnh INDEX – sắp xếp theo thẻ (Tag)
B1: INDEX ON <Trường khóa> [/ kiểu sắp xếp]
TAG <Tên thẻ sắp xếp>
B2: USE <Tên tệp> ORDER <Tên thẻ sắp xếp>
Thẻ sắp xếp: *.cdx
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
SẮP XẾP DỮ LIỆU (Cont)
• Ví dụ
USE DSSV
INDEX ON Masv TO dssv_idx
USE DSSV INDEX dssv_idx
Hoặc
Use DSSV
Index On MASV Tag DSSV_Tag
Use DSSV Order DSSV_Tag
Saturday, April 07, 2012 Tin Quản Lý - Visual Foxpro
TÌM KIẾM DỮ LIỆU
Tìm kiếm dữ liệu
Tìm kiếm tuần tự - Câu lệnh LOCATE
Tìm kiếm sau khi lập chỉ mục
Câu lệnh SEEK
Câu lệnh FIND
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
TÌM KIẾM DỮ LIỆU
• Câu lệnh LOCATE
Cú pháp
LOCATE FOR <Biểu thức điều kiện tìm kiếm>
Một số hàm, câu lệnh đi kèm với câu lệnh LOCATE
- FOUND (): cho biết có tìm thấy bản ghi nào thỏa mãn điều kiện
tìm kiếm hay không? (FOUND() = .T.)
- RECNO(): cho biết số hiệu của bản ghi thỏa mãn điều kiện tìm
- CONTINUE: tiếp tục tìm kiếm
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
TÌM KIẾM DỮ LIỆU (Cont)
• Lệnh FIND và lệnh SEEK
(Hai lệnh này chỉ sử dụng để tìm kiếm dữ liệu trên các tệp dữ liệu đã được
sắp xếp bằng lệnh INDEX)
Cú Pháp
FIND <Giá trị tìm>
hoặc
SEEK <Giá trị tìm>
VD: …
Saturday, April 07, 2012 Tin Quản Lý - Visual Foxpro
NỘI DUNG
Một số câu lệnh thống kê dữ liệu
Biến nhớ (Variable)
Câu lệnh COUNT
Câu lệnh SUM
Câu lệnh AVERAGE
Câu lệnh CALCULATE
Câu lệnh TOTAL ON
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
KHÁI NIỆM BIẾN
• Biến (Variables) là gì?
• Có bao nhiêu loại biến?
– Biến nhớ và Biến trường
• Biến trường Trường
• Biến nhớ: một vùng nhớ được sử dụng để lưu trữ giá
trị trong quá trình thực hiện công việc
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
BIẾN NHỚ - VARIABLE
• Các thuộc tính của biến nhớ
– Tên biến - Name
– Kiểu dữ liệu của biến – Datatype
– Độ rộng của biến - Width
– Giá trị - Value
• Ví dụ:
• _Hoten = “Nguyễn Văn An”
• _Ngaysinh = {09/03/1984}
• _Diem = 9.5
• …
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
BIẾN NHỚ - VARIABLE
• Ví dụ: _Hoten = “Nguyễn Văn An”
Nguyễn Văn An
_Hoten
Name: _Hoten
Data type: Character
Width: 13
Value: Nguyễn Văn An
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
BIẾN NHỚ - VARIABLE
• Ví dụ: _Diem = 9.5
9.5
_Diem
Name: _Diem
Data type: Numeric
Width: 3
Decimal: 1
Value: 9.5
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh COUNT
• Cú pháp
COUNT <phạm vi> FOR <Biểu thức Logic> TO <Biến nhớ>
• VD: COUNT all FOR DiemLT>=5.0 TO _dem
?_dem
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh SUM
• Cú pháp
SUM <phạm vi> <Biểu thức> TO <Biến
nhớ> [FOR <Biểu thức Logic>]
VD: 1. SUM all Thuclinh TO _Tongthuclinh
?_Tongthuclinh
2. SUM all Doanhthu TO _TongDT FOR
thang=12
?_TongDT
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh AVERAGE
• Cú pháp
AVERAGE <phạm vi> <Biểu thức> TO <Biến
nhớ> [FOR <Biểu thức Logic>]
VD: 1. AVERAGE all DiemTB TO _DTB
? _DTB
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh CALCULATE
• Cú pháp
CALCULATE <Hàm tính> TO <Biến nhớ>
[FOR <Biểu thức điều kiện>]
Hàm tính có thể là MIN(), MAX(),AVG(),
VD: Calc Max(DiemLT) to _MaxLT
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh TOTAL ON
• Cú pháp
TOTAL ON <Trường xác định gộp nhóm>
FIELDS <Trường tính gộp>
TO <Tệp kết quả>
[FOR <Biểu thức Logic>]
Lưu ý: - Tệp chứa dữ liệu trước khi tính gộp phải được
sắp xếp theo trường xác định gộp
- Tệp kết quả là tệp *.dbf
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012
Câu lệnh TOTAL ON
• Ví dụ:
Nguoiban Tienban
Lan Hương 1.000.000
Thanh Trúc 850.000
Lan Hương 500.00
Xuân Thành 450.000
Thanh Trúc 200.000
Nguoiban Tienban
Lan Hương 1.500.000
Thanh Trúc 1.050.000
Xuân Thành 450.000
Doanhthu1.dbf
Doanhthu2.dbf
- Sắp xếp bảng DOANHTHU.DBF
theo trường NGUOIBAN
- Xác định giá trị gộp
Total On Nguoiban Fields Tienban
To Doanhthu2
Tin Quản Lý - Visual Foxpro
Saturday, April 07, 2012