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

Liên hệ QC

Giahao2006

Thành viên mới
Tham gia
31/7/20
Bài viết
26
Được thích
13
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 ạ.

1663590497514.png
 

File đính kèm

  • LOC DATA BANG SQL.xlsx
    13.9 KB · Đọc: 14

BuiQuangThuan

❆❆❆❆❆❆❆❆❆❆❆❆
Tham gia
17/12/10
Bài viết
1,727
Được thích
1,660
Giới tính
Nam
Cứ phải là SQL mới được à
 
Upvote 0

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
14,280
Được thích
18,890
Cứ phải là SQL mới được à
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.
 
Upvote 0

snow25

Thành viên gắn bó
Tham gia
24/7/18
Bài viết
3,173
Được thích
3,185
Donate (Momo)
Donate
Giới tính
Nam
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.
Thế không biết mới hỏi mà.Mà có đòi hỏi nhiều gì đâu anh.Chỉ là làm bằng SQL thôi à.
 
Upvote 0

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
12,203
Được thích
33,681
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
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.
 
Upvote 0

thaytu

Thành viên hoạt động
Tham gia
30/5/08
Bài viết
116
Được thích
162
Tóm lại là Select còn cái dòng trống đó thì tự chèn bằng tay nhé
 
Upvote 0

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
14,280
Được thích
18,890
Thế không biết mới hỏi mà.Mà có đòi hỏi nhiều gì đâu anh.Chỉ là làm bằng SQL thôi à.
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.
 
Upvote 0

snow25

Thành viên gắn bó
Tham gia
24/7/18
Bài viết
3,173
Được thích
3,185
Donate (Momo)
Donate
Giới tính
Nam
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.
 
Upvote 0

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
12,203
Được thích
33,681
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Tôi vừa sửa chữ ký của nick snow25 cho nhỏ lại, phù hợp với nội quy.
1663601797253.png
 
Upvote 0

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,237
Được thích
15,621
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
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 ạ.

View attachment 281121
Thêm sheet DanhMuc như sau:

1663637836099.png

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

Mã:
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
 

File đính kèm

  • LOC DATA BANG SQL.xlsb
    21.4 KB · Đọc: 20
Upvote 0

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
14,280
Được thích
18,890
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à)
 
Upvote 0

Giahao2006

Thành viên mới
Tham gia
31/7/20
Bài viết
26
Được thích
13
Thêm sheet DanhMuc như sau:

View attachment 281126

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

Mã:
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
Dạ, cảm ơn Anh Hai Lúa Miền Tây nhiều ạ
 
Upvote 0

Giahao2006

Thành viên mới
Tham gia
31/7/20
Bài viết
26
Được thích
13
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)
1663758308873.png
 

File đính kèm

  • LOC DATA BANG SQL.xlsb
    40.7 KB · Đọc: 5
Upvote 0

thaytu

Thành viên hoạt động
Tham gia
30/5/08
Bài viết
116
Được thích
162
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.
 
Upvote 0

Tống Văn Đệ

Thành viên thường trực
Tham gia
27/10/07
Bài viết
376
Được thích
271
Donate (Momo)
Donate
Giới tính
Nam
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
 

File đính kèm

  • LOC Khach Hang BANG SQL .xlsm
    22.9 KB · Đọc: 15
Upvote 0

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
14,280
Được thích
18,890
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é)

Trong khi chờ giải pháp của Hai Lúa Miền Tây,
...
Nên chờ "Code đơn giản" của thớt. Có lẽ sắp ra rồi.
 
Upvote 0

A-T

Thành viên mới
Tham gia
3/1/19
Bài viết
8
Được thích
8

File đính kèm

  • 1663830174616.png
    1663830174616.png
    358.2 KB · Đọc: 36
  • 1663830336728.png
    1663830336728.png
    252.9 KB · Đọc: 34
Lần chỉnh sửa cuối:
Upvote 0

Linhvo24

Thành viên mới
Tham gia
20/9/22
Bài viết
1
Được thích
0
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.[So luong] = " & N3 & "","HR=NO; INSERT=YES;")

1663830607704.png
 
Upvote 0

Tống Văn Đệ

Thành viên thường trực
Tham gia
27/10/07
Bài viết
376
Được thích
271
Donate (Momo)
Donate
Giới tính
Nam
Thử thay:
WHERE n.[Mã hàng] = '" & M3 & "' AND n.[So luong] = " & N3 & "","HR=NO; INSERT=YES;")
bằng"
WHERE n.[Mã hàng] LIKE '" & M3 & "' AND n.[So luong] = " & N3 ,"HR=NO; INSERT=YES;")
không có file nên không test được.
 
Upvote 0
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL
Top Bottom