Lọc dữ liệu bằng SQL theo điều kiện

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Xin Chào Anh/Chị/ Em ạ, mình có một file hoặc hình bên dưới, kính nhờ Anh/Chị làm giúp ra kết quả giúp như phía dưới với ạ, Dạ, cảm ơn Anh / Chị nhiều ạ.

2583

Bài này mà viết SQL thì sặc gạch luôn.
Thứ nhất, SQL không chuyên để subtotals, các phiên bản lớn (Oracle, T-SQL,…) phải dùng Rollup. Riêng Access thì phải dùng Union với dòng Sum, khá phức tạp.
Thứ hai, sắp xếp để cho "Tôm" đứng trước "Gà" cần tạo trường phụ.

Túm lại, thớt đòi hỏi hơi nhiều so với khả năng hiểu biết của mình.

Dạ, chứ mấy cái record hay là viết code cơ bản để ra được giống vậy thì mình làm được rồi ạ, tại mình thấy SQL truy suất dữ liệu nhanh, nên mới nhờ mọi người giúp đỡ, sẵn học hỏi thêm ạ,

Sort lại theo cột B, sau đó dùng chức năng Sub total có sẵn của excel. Không hàm, không công thức, không VBA, không SQL, …
Một cách khác cũng 4 không: Pivot table, khuyến mãi một không thứ năm là không cần sort.

Tóm lại là Select còn cái dòng trống đó thì tự chèn bằng tay nhé

Bạn không hiểu lời của tôi: "…nhiều so với hiểu biết của mình"

Nếu thớt tự viết được phần SQL truy xuất chi tiết, và phần SQL truy xuất theo nhóm (tên và danh mục). Tôi sẽ chỉ cho cách nhập chúng lại để ra kết quả.
Khong viết được hai phần đó thì đòi hỏi SQL chỉ là đua đòi.

Làm cách nào để sắp xếp "tôm" trước "gà" chỉ cần kỹ xảo nhỏ

Nói túm lại, những đòi hỏi của bài không phải là căn bản SQL. Thớt bảo rằng "mình thấy SQL truy suất dữ liệu nhanh" là nói về cái mà chính mình hoàn toàn mù tịt.

Thực ra em biết anh nói cái gì.Chắc chủ thớt chỉ muốn là code nó chạy nhanh hơn thôi.Chứ không biết về SQL.Còn nếu bài của chủ thớt cho vào mảng duyệt nó cũng nhanh thôi.Chắc chỉ thua kém về % giây tốc độ.Nên có thể bỏ qua.

Thêm sheet DanhMuc như sau:

281126

Rồi chạy thử code sau nhé:

Sub GomNhom_HLMT()
    Dim strSQL As String, strSQL1 As String
    strSQL = "Select b.ThuTu,a.DVB,[DANH MUC],DVT,[SL] From [Sheet2$] a Inner Join [DanhMuc$] b On a.DVB=b.DVB "
    strSQL1 = strSQL & " UNION ALL SELECT THUTU & ' Total','','','',SUM([SL]) AS SOLUONG FROM (" & strSQL & ") GROUP BY THUTU"
    With CreateObject("ADODB.Recordset")
        .Open ("SELECT DVB, [DANH MUC],DVT,[SL] FROM(" & strSQL1 & ") ORDER BY THUTU, [DANH MUC] DESC"), "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 12.0 Xml;"
        Sheet2.Range("L2").CopyFromRecordset .DataSource
    End With
End Sub

www.giaiphapexcel.com/diendan/threads/l%E1%BB%8Dc-d%E1%BB%AF-li%E1%BB%87u-b%E1%BA%B1ng-sql-theo-%C4%91i%E1%BB%81u-ki%E1%BB%87n.162093/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 1 ▥ 0
Quảng cáo

Bạn nên đọc

One Response

  1. hands says:

    Sỡ dĩ tôi nói thớt trình độ còn quá tay mơ, nói chuyện "học hỏi" chỉ là nói dóc là vì cái bài tập nảy là điển hình của người DỐT VỀ DỮ LIỆU.

    Trứng đong đo bằng Kg?

    Tính tổng (Total/Subtotal) số cân của nhiều mặt hàng khác nhau thì con số ấy có nghĩa lý gì? Có khác nào so sánh tôi bán anh A 5 con (heo) và anh B cũng 5 con (gà)

    Dạ, Anh Hai Lúa Miền Tây ơi, có thể chỉnh lại giúp em tí cho thích hợp với file bên dưới được không ạ, cảm ơn Anh nhiều ạ
    (Vừa lọc theo DVM và DVB nhé Anh)
    2585

    Trong khi chờ giải pháp của Hai Lúa Miền Tây,
    Xài tạm cái này,
    Click chọn DVM trong cell J4

    Chủ thớt nhờ xong mà được còn nhờ tiếp cái gì nữa không? Thấy lắt nhắt dữ. Đã hỏi dùng SQL thì tốt nhất là dữ liệu SQL SV chứ không nên dùng Excel làm CSDL nữa.

    Bạn làm sao theo kịp đầu óc đi trước thời đại 100 năm.
    (đừng hỏi tôi 100 năm sau có còn ai nhớ đến Excel và VBA không nhé)

    Anh chị cho em hỏi, em nhập hàm SQL có điều kiện nhưng nó không xuất ra được kết quả. Còn nếu em xuất không điều kiện thì nó lại hiện đầy đủ. Em phải sửa như nào ạ !!!! Hiccc
    =bs_Sql("SELECT n.[Ngày nhập ], n.[TỒN ], n.[Đơn giá], n.ID_N
    FROM n
    WHERE n.[Mã hàng] = '" & M3 & "' AND n. = " & N3 & "","HR=NO; INSERT=YES;")

    2587

    Thử thay:
    WHERE n.[Mã hàng] = '" & M3 & "' AND n. = " & N3 & "","HR=NO; INSERT=YES;")
    bằng"
    WHERE n.[Mã hàng] LIKE '" & M3 & "' AND n. = " & N3 ,"HR=NO; INSERT=YES;")
    không có file nên không test được.

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm