• Lọc hàng đầu tiên trong query
  • Lọc hàng đầu tiên trong query

    vuong00004 > 04-06-21, 10:36 PM

    [Hình: vbkgZFS]

    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

    [Hình: 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./. Heart Heart Heart HeartHeartHeartHeart
  • 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ì?

    [Hình: AfxDdB4.png]


    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ì?

    [Hình: AfxDdB4.png]


    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.

    Heart Heart Heart 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 ạ./.