Trình bày cho dễ hiểu thì hàm partition có ý nghĩa như sau
Hàm phân chia đoạn thống kê Partition
Phát biểu: Partition(number, start, stop, interval)
Hàm sẽ trả về một chuỗi "bắt đầu của một đoạn : Kết thúc một đoạn"
Trong đó: number - Cột bạn muốn phân đoạn. Cột đó phải là kiểu Số. start - Số bắt đầu theo dõi stop - Số kết thúc theo dõi interval - Độ dài của đoạn
Ví dụ ta có bảng danh sách thành viên tham gia diễn đàn theo độ tuổi và thành phố như sau:
bảng : danhsach
Tuoi
ThanhPho
73
Sài Gòn
19
Sài Gòn
19
Hà Nội
20
Sài Gòn
24
Hà Nội
21
Sài Gòn
16
Sài Gòn
45
Hà Nội
50
Sài Gòn
55
Hà Nội
75
Sài Gòn
80
Hà Nội
62
Sài Gòn
64
Hà Nội
46
Hà Nội
47
Hà Nội
49
Hà Nội
48
Hà Nội
56
Hà Nội
58
Sài Gòn
72
Sài Gòn
67
Hà Nội
15
Sài Gòn
17
Sài Gòn
63
Hà Nội
66
Hà Nội
61
Hà Nội
33
Sài Gòn
50
Sài Gòn
51
Sài Gòn
54
Sài Gòn
32
Hà Nội
Ta muốn đếm số người theo nhóm mỗi 5 tuổi một nhóm. Theo dõi từ 0- 100 tuổi. Ta phát biểu:
Mã PHP:
SELECT DISTINCTROW [ThanhPho], Partition([tuoi],0,100,5) AS DoTuoi, Count([tuoi]) AS SoNguoi FROM [danhsach] GROUP BY ThanhPho, Partition([tuoi],0,100,5);
(15-03-12, 04:06 PM)Noname Đã viết: Nói ngắn gọn hàm này tương đương với rất nhiều hàm IIF lồng nhau. Với ví dụ trên để phát biểu bằng Iif thì phải thế này:
Mã:
Iif( tuoi > 0 and tuoi <=5,"0:5", iif(tuoi>5 and tuoi<=10,"5:10,iif(tuoi>10 and tuoi <=15,"10:15",.....)..)...)
và thay vào đó ta chỉ gọi 1 hàm duy nhất
Mã:
Partition([tuoi],0,100,5)
Hàm này rất hay và hữu dụng nhưng hiếm khi thấy người ta dùng. Hàm này thường đi chung với CrossTab Query để chia dữ liệu.
Hàm DateAdd
Hàm dateadd là 1 hàm cũng hữu dụng giúp ta thêm số lượng ngày, tháng, năm... bất kỳ vào 1 ngày nào đó.
Cú pháp: DATEADD ( datepart , number, date )
Datepart Abbreviations
Year: yy, yyyy
quarter: qq, q
Month: mm, m
dayofyear: dy, y
Day: dd, d
Week: wk, ww
Hour: hh
minute: mi, n
second: ss, s
millisecond: ms