-
Lọc hàng đầu tiên trong query
vuong00004 > 04-06-21, 10:36 PM
https://imgur.com/a/vbkgZFS
https://drive.google.com/file/d/1ssti933...sp=sharing
Dạ, em chào các bác ạ, nhờ các bác giúp em với:
- Em có 01 bảng dữ liệu gồm có nhiều cột;
-Em tạo 01 query gồm các cột MaPE - GioHT - Ia - Ib - Ic - Imax - Imin (trong đó Imax là giá trị lớn nhất của Ia - Ib - Ic của mỗi hàng; Imin là giá trị nhỏ nhất của Ia - Ib - Ic) và sort theo MaPE, Imax.
Hỏi: em muốn tạo 01 query mới giống query trên (hiền thị đủ cột) mà chỉ hiện thị dòng đầu tiên của mỗi MaPE
Em cám ơn các bác ạ./. -
RE: Lọc hàng đầu tiên trong query
ongke0711 > 04-06-21, 11:46 PM
Bạn xem file đính kèm. Query: BC_Tai_max
Link: https://www.mediafire.com/file/sektt2ole...i.mdb/file -
RE: Lọc hàng đầu tiên trong query
vuong00004 > 05-06-21, 08:30 AM
(04-06-21, 11:46 PM)ongke0711 Đã viết: Bạn xem file đính kèm. Query: BC_Tai_max
Link: https://www.mediafire.com/file/sektt2ole...i.mdb/file
Dạ, em không biết nói gì hơn ngoài câu "em cám ơn ongke0711 rất nhiều" . -
RE: Lọc hàng đầu tiên trong query
vuong00004 > 05-06-21, 10:41 AM
(04-06-21, 11:46 PM)ongke0711 Đã viết: Bạn xem file đính kèm. Query: BC_Tai_max
Link: https://www.mediafire.com/file/sektt2ole...i.mdb/file
https://imgur.com/a/DzePHG2
Dạ, em kiểm tra lại thì thấy số liệu báo cáo còn thiếu như sau:
- Bảng tai_ngay có: 3012 dòng
- Query Tai_Max_detail có: 2998 dòng
- Query Tai_max_sum có: 259 dòng
- Query BC_Tai_max có: 119 dòng
Em không biết sao truy vấn từ bảng tai_ngay sang Query Tai_Max_detail thiếu 14 dòng; Query BC_Tai_max thiếu 140 dòng (đúng là 259 dòng).
Dạ, nhờ Anh sửa lại dùm em, em cám ơn anh nhiều./. -
RE: Lọc hàng đầu tiên trong query
ongke0711 > 05-06-21, 11:55 AM
Tôi đã sửa lại rồi nhưng có phát sinh một trường hợp khác: Có 8 mã sau khi tổng hợp Max, Min thì bị trùng giá trị MAX --> Trường hợp này bạn chọn lấy dòng nào? theo tiêu chí gì?
Mã PHP:MaPE
PE06000190772001
PE06000190774001
PE06000190827001
PE06000190831
PE06000190857001
PE06000190868001
PE06000190890001
PE06000190948
Link file: https://www.mediafire.com/file/sektt2ole...i.mdb/file -
RE: Lọc hàng đầu tiên trong query
vuong00004 > 05-06-21, 05:35 PM
(05-06-21, 11:55 AM)ongke0711 Đã viết: Tôi đã sửa lại rồi nhưng có phát sinh một trường hợp khác: Có 8 mã sau khi tổng hợp Max, Min thì bị trùng giá trị MAX --> Trường hợp này bạn chọn lấy dòng nào? theo tiêu chí gì?
Mã PHP:MaPE
PE06000190772001
PE06000190774001
PE06000190827001
PE06000190831
PE06000190857001
PE06000190868001
PE06000190890001
PE06000190948
Link file: https://www.mediafire.com/file/sektt2ole...i.mdb/file
Dạ, em cảm ơn anh nhiều ạ.
- Anh có thể giải thích dùm em là PE06000190984 có 8 dòng Imax bằng 0 nhưng bảng BC_Tai_max chỉ hiện thị 01 dòng trong bảng; Còn các mã khác thì hiển thị đủ dòng Imax trong bảng. Nếu em thêm cột GioHT thì nó hiển thị 8 dòng trong bảng.
- Anh giúp em sửa lại bảng BC_Tai_max lọc theo tiêu chí thứ 2 là Imin nhỏ nhất, thứ 3 là GioHT gần nhất nhe.
Cám ơn anh./.
-
RE: Lọc hàng đầu tiên trong query
Xuân Thanh > 05-06-21, 11:04 PM
Trong lưới query có thể chọn MAX cho giá trị Imax được không?
Tôi chưa test, bạn thử xem -
RE: Lọc hàng đầu tiên trong query
ongke0711 > 05-06-21, 11:25 PM
(05-06-21, 05:35 PM)vuong00004 Đã viết: - Anh có thể giải thích dùm em là PE06000190984 có 8 dòng Imax bằng 0 nhưng bảng BC_Tai_max chỉ hiện thị 01 dòng trong bảng; Còn các mã khác thì hiển thị đủ dòng Imax trong bảng. Nếu em thêm cột GioHT thì nó hiển thị 8 dòng trong bảng.
- Anh giúp em sửa lại bảng BC_Tai_max lọc theo tiêu chí thứ 2 là Imin nhỏ nhất, thứ 3 là GioHT gần nhất nhe.
- Access Query có phương thức Group By (hoặc DISTINCTROW): nó sẽ nhóm toàn bộ các dòng thành một nếu tất cả các Field có giá trị giống nhau. Khi thêm Field [GioHT] thì mỗi dòng có giá trị [GioHT] khác nhau nên nó không Group lại được mà vẫn giữ nguyên 8 dòng.
- Bài toán này của bạn cần lọc dữ liệu tới 3 cấp (max, min, gioht) nên tốn mấy cái query mới ra kết quả cuối cùng. Nếu dữ liệu lớn thì có thể tách Query lưu xuống thành Table tạm rồi Query tiếp dựa trên Table tạm đó để có thể xử lý nhanh hơn. Dữ liệu như hiện tại thì chưa cần.
Xem file đính kèm.
Link file: https://www.mediafire.com/file/sektt2ole...i.mdb/file -
RE: Lọc hàng đầu tiên trong query
vuong00004 > 05-06-21, 11:39 PM
(05-06-21, 11:25 PM)ongke0711 Đã viết:
(05-06-21, 05:35 PM)vuong00004 Đã viết: - Anh có thể giải thích dùm em là PE06000190984 có 8 dòng Imax bằng 0 nhưng bảng BC_Tai_max chỉ hiện thị 01 dòng trong bảng; Còn các mã khác thì hiển thị đủ dòng Imax trong bảng. Nếu em thêm cột GioHT thì nó hiển thị 8 dòng trong bảng.
- Anh giúp em sửa lại bảng BC_Tai_max lọc theo tiêu chí thứ 2 là Imin nhỏ nhất, thứ 3 là GioHT gần nhất nhe.
- Access Query có phương thức Group By (hoặc DISTINCTROW): nó sẽ nhóm toàn bộ các dòng thành một nếu tất cả các Field có giá trị giống nhau. Khi thêm Field [GioHT] thì mỗi dòng có giá trị [GioHT] khác nhau nên nó không Group lại được mà vẫn giữ nguyên 8 dòng.
- Bài toán này của bạn cần lọc dữ liệu tới 3 cấp (max, min, gioht) nên tốn mấy cái query mới ra kết quả cuối cùng. Nếu dữ liệu lớn thì có thể tách Query lưu xuống thành Table tạm rồi Query tiếp dựa trên Table tạm đó để có thể xử lý nhanh hơn. Dữ liệu như hiện tại thì chưa cần.
Xem file đính kèm.
Link file: https://www.mediafire.com/file/sektt2ole...i.mdb/file
Dạ, em cám ơn anh đã hướng dẫn em tận tình, em cám ơn anh rất nhiều ạ./.