Hàm GROUP_CONCAT cho phép tạo báo cáo liệt kê các mã theo từng đối tượng được nhóm. Đây là hàm giúp bạn làm báo cáo hay có độ phức tạp nhưng lại dễ dàng với A-Tools. Hàm này được lồng trong hàm BS_SQL sau từ khóa SELECT.
Với danh sách tổng hợp các mặt hàng theo từng tháng
Bạn có muốn liệt kê các khách hàng mua sản phẩm đó?
Các ngày bạn đã bán ?
Để làm được như các yêu cầu trên công thức như sau:
SQL: "SELECT RECNO() AS STT, MONTH(NGAY_CT) AS [THÁNG], MA_VLSPHH, SUM(SLG) AS [TỔNG SLG],
'?' AS [DANH SÁCH KH],
'?' AS [CÁC NGÀY]
FROM DATA
WHERE MA_KH<>''
GROUP BY MONTH(NGAY_CT),MA_VLSPHH"
OPTIONS: INSERT=YES; GROUP(1)
CÔNG THỨC: =BS_SQL(A4,A5)
Cách dùng hàm GROUP_CONCAT
Kết hợp với SEPARATOR để chỉ định ký tự ngăn cách danh sách. Công thức như sau:
SQL:"SELECT RECNO() AS STT, MONTH(NGAY_CT) AS [THÁNG], MA_VLSPHH, SUM(SLG) AS [TỔNG SLG],
GROUP_CONCAT(MA_KH SEPARATOR '+') AS [DANH SÁCH KH],
GROUP_CONCAT(DAY(NGAY_CT) SEPARATOR '+') AS [CÁC NGÀY]
FROM DATA
WHERE MA_KH<>''
GROUP BY MONTH(NGAY_CT),MA_VLSPHH"
OPTIONS: INSERT=YES; GROUP(1)
CÔNG THỨC: =BS_SQL(A4,A5)
Cách dùng hàm GROUP_CONCAT
Kết hợp với SEPARATOR để chỉ định ký tự ngăn cách danh sách
Kết hợp với ORDER BY để sắp xếp các giá trị liệt kê tăng hoặc giảm dần
Ngầm định là tăng dần
Nếu muốn giảm dần thì:
GROUP_CONCAT(ma_kh order by ma_kh desc)
Chú ý cột "DANH SÁCH KH" giá trị sắp xếp Z->A. Công thức như nhau:
SQL: "SELECT RECNO() AS STT, MONTH(NGAY_CT) AS [THÁNG], MA_VLSPHH, SUM(SLG) AS [TỔNG SLG],
GROUP_CONCAT(MA_KH SEPARATOR '+' ORDER BY MA_KH DESC) AS [DANH SÁCH KH],
GROUP_CONCAT(DAY(NGAY_CT) SEPARATOR '+') AS [CÁC NGÀY]
FROM DATA
WHERE MA_KH<>''
GROUP BY MONTH(NGAY_CT),MA_VLSPHH"
OPTIONS: INSERT=YES; GROUP(1)
CÔNG THỨC: =
BS_SQL(A4,A5)
Cách dùng hàm GROUP_CONCAT
Kết hợp với SEPARATOR để chỉ định ký tự ngăn cách danh sách
Tạo ngắt dòng trong danh sách cở cột "CÁC NGÀY"
"Cách làm:
1. SEPARATOR '
'
2. Format cột ""CÁC NGÀY"" là ""Wrap Text"""
Có thể ghép các cột để liệt kê
DAY(ngay_ct) & ':' & slg
Bạn để ý cột "CÁC NGÀY" vừa có số ngày và số lượng hàng
SQL: "SELECT RECNO() AS STT, MONTH(NGAY_CT) AS [THÁNG], MA_VLSPHH, SUM(SLG) AS [TỔNG SLG],
GROUP_CONCAT(MA_KH SEPARATOR '+') AS [DANH SÁCH KH],
GROUP_CONCAT(DAY(NGAY_CT) &':' & SLG SEPARATOR '
') AS [CÁC NGÀY]
FROM DATA
WHERE MA_KH<>''
GROUP BY MONTH(NGAY_CT),MA_VLSPHH"
OPTIONS: INSERT=YES; GROUP(1)
CÔNG THỨC: =BS_SQL(A4,A5)
Video hướng dẫn chi tiết: