Lọc trùng trong SQL

Liên hệ QC

phongmalo

Thành viên mới
Tham gia
11/7/07
Bài viết
30
Được thích
5
Em có 1 vấn đề nan giải mấy tuần qua đã thử hết cách rất mong các anh chị trên diễn đàn giúp đỡ, vấn đề như sau: em có 1 file excel trong đó có 1 sheet Data dùng để lưu trữ dữ liệu, trong DATA em có các cột sau: Ho&tenbome, Ho&tenBe, Diachi, Dienthoai.
mục đích của em ở đây là mún lấy lọc DATA sang một sheet khac, nhung điêukiện là cột Ho&tenbome và cột Ho&tenBe ko được trùng nhau.
VD: có bảng DATA sau.
Ho&tenbome Ho&tenBe Diachi Dienthoai
Phuong Hai Binhduong 123456789
Phuong Ngan Binh phuoc 455465465
Hoang Van Binh chieu 354354412
Phuong Hai Binh Duong 123456789
Phuong Ngan Binh Phuoc 455465465

nếu làm ra kết quả đúng thì sẽ cho ra như sau:
Ho&tenbome Ho&tenBe Diachi Dienthoai
Phuong Hai Binhduong 123456789
Phuong Ngan Binh phuoc 455465465
Hoang Van Binh chieu 354354412

đã bỏ đi những dòng trùng chỉ lọc theo 2 cột Ho&tenbomeHo&tenBe 2 cột còn lại chỉ lấy theo thôi
nghĩ mãi và thữ mãi rồi nhưng không ra được kết quả như mong muốn, thường nếu em dùng SQL (từ khóa Distinct) ví dụng Select distinct Ho&tenbome, Ho&tenBe From DATA
thì nó chỉ ra 2 cột đầu (Ho&tenbomeHo&tenBe ) thôi, còn 2 cột còn lại em mún hiện ra lun thì lại ko được, mong các anh chị giúp em với.+-+-+-+

 
Lần chỉnh sửa cuối:
Em có 1 vấn đề nan giải mấy tuần qua đã thử hết cách rất mong các anh chị trên diễn đàn giúp đỡ, vấn đề như sau: em có 1 file excel trong đó có 1 sheet Data dùng để lưu trữ dữ liệu, trong DATA em có các cột sau: Ho&tenbome, Ho&tenBe, Diachi, Dienthoai.
mục đích của em ở đây là mún lấy lọc DATA sang một sheet khac, nhung điêukiện là cột Ho&tenbome và cột Ho&tenBe ko được trùng nhau.
VD: có bảng DATA sau.
Ho&tenbome Ho&tenBe Diachi Dienthoai
Phuong Hai Binhduong 123456789
Phuong Ngan Binh phuoc 455465465
Hoang Van Binh chieu 354354412
Phuong Hai Binh Duong 123456789
Phuong Ngan Binh Phuoc 455465465

nếu làm ra kết quả đúng thì sẽ cho ra như sau:
Ho&tenbome Ho&tenBe Diachi Dienthoai
Phuong Hai Binhduong 123456789
Phuong Ngan Binh phuoc 455465465
Hoang Van Binh chieu 354354412

đã bỏ đi những dòng trùng chỉ lọc theo 2 cột Ho&tenbomeHo&tenBe 2 cột còn lại chỉ lấy theo thôi
nghĩ mãi và thữ mãi rồi nhưng không ra được kết quả như mong muốn, thường nếu em dùng SQL (từ khóa Distinct) ví dụng Select distinct Ho&tenbome, Ho&tenBe From DATA
thì nó chỉ ra 2 cột đầu (Ho&tenbomeHo&tenBe ) thôi, còn 2 cột còn lại em mún hiện ra lun thì lại ko được, mong các anh chị giúp em với.+-+-+-+

Tôi không rành SQL, nhưng tôi nghĩ nếu file của bạn là Excel thì nên dùng Advanced Filter ---> Đây là 1 chức năng sẳn có của Excel, cũng là phương pháp nhanh nhất để lọc 1 Unique list
 
Giả sử trong dữ liệu của bạn có hai record trùng nhau về Ho&tenbome và Ho&Tenbe nhưng khác nhau về Diachi và Dienthoai thì hai field Diachi và Dien thoai lấy theo cái nào sau khi lọc duy nhất ra danh sách Ho&tenbome và Ho&tenbe!?
 
Chỉ cần sửa tên field: bỏ ký tự & trong field name, SQL như cũ:

PHP:
Select distinct Hotenbome, HotenBe, Diachi, Dienthoai
 From DATA
 
theo em nghĩ nếu như kết quả trả về record nào được lấy thì sẽ chiếu qua bên cột tương ứng để lấ địa chỉ và điện thoại, theo anh Ndu* thì em cũng đã thử sử dụng Advancefilter nhưng tốc độ lọc rất chậm, có khi treo máy(vì file chứa dữ liệu đến 63.000 dòng lận chứ ko đơn thuần là vài trăm dòng) em chỉ minh họa thôi, vì em ít post bài lên mạng lắm, nên nhất thời ko nhớ post sao nữa mà lại đang gấp nên phải dùng file minh hoạ.
 
Ptm* ơi!, vì 2 cột địa chỉ ko thể lọc được, như vầy nè: Cty mình Đang lên kế hoạch phát quà cho danh sách người chơi chương trình bé khỏe bé ngoan, khách hàng đăng ký rất nhiều, lên đến 63.000 dòng, mỗi ngày nhiều nhân viên phải chia ra nhập liệu số khách hàng tham gia chưong trình, tên khách hàng và tên con của khách hàng thì ok, nhưng địa chỉ thì mỗi người nhập 1 kiểu, vậy thì nếu ta làm theo cách trên Phương nghĩ sẽ ko giải quyết được vấn đề lọc trúngvi dụ: cũng cùng tên khách hàng, Số diện thoại, Tên con của KH, nhưng địa chỉ lại không khớp nhau(có thể chỉ sai 1 tý thui) do mỗi nhân viên nhập 1 kiểu, như vậy nếu vài trăm dòng họa mai mình còn coi lại và sữa chửa chứ 63.000 dòng thì bó tay, mà đùng 1 cái sếp bảo nộp danh sách khách hàng tham gia chương trình, không được trùng
thế mới chít chứ.
 
Vậy sao bạn không dùng advance filter như gợi ý của anh NDU (Maximum là mất 5 phút) để lọc ra 1 sheet với danh sách duy nhất. Sau đó dùng Vlookup để tìm địa chỉ và số điện thoại bên sheet gốc (cũng maximum 5 phút). Đôi khi dùng cây búa mà đập con kiến thì cũng không hay ho cho lắm! Thiết nghĩ cái này cần gì tới SQL cho phức tạp nhỉ!
 
Anh Ca_dafi ơi!, Anh có nghĩ là nếu 1 file Excel 2003 có tới 63.000 thì file excel sẽ như thế nào không, nhất là cấu hình của máy là Pentium4 cũng đủ mệt nhừ rùi, huhu.
 
Lần chỉnh sửa cuối:
Anh Ndu* ơi!, Anh có nghĩ là nếu 1 file Excel 2003 có tới 63.000 thì file excel sẽ như thế nào không, nhất là cấu hình của máy là Pentium4 cũng đủ mệt nhừ rùi, huhu.
Tôi nghĩ thay vì bạn ngồi khóc thì hãy bắt tay làm đi. Đừng quên là Advanced Filter nha chứ không phải là auto filter. Còn không thì làm như sau (để giảm dung lượng khi up file lên:
- Save as file đó dưới dạng *.CSV
- Đổi phần mở rộng của file vừa lưu thành *.txt
- zip file vừa tạo đó lại rồi gửi lên đây, 10 phút sau có kết quả!
 
Lần chỉnh sửa cuối:
loc Trung

vậy thì phải phiền anh rồi, nhưng chương trình của em còn phải nhập thêm dữ liệu nữa, vậy mỗi lần như vậy phải phiền anh thì thật ngại, hihi, anh cho em email đi
em gửi cho anh chứ bi h filee em nó nặng wá, làm theo cách anh thì còn 4.5mb nhưng em up lên giaiphap ko được, àh tiện thể anh cho em xin nick online lun đi, có gì em hỏi anh dễ hơn, hjhj
 
Lần chỉnh sửa cuối:
Anh Ca_dafi ơi!, Anh có nghĩ là nếu 1 file Excel 2003 có tới 63.000 thì file excel sẽ như thế nào không, nhất là cấu hình của máy là Pentium4 cũng đủ mệt nhừ rùi, huhu.

Với excel 2007 thì mình nghĩ là bạn không dùng hết đâu.
Mình gửi bạn file VD minh họa về sử dụng Advanced Filter để trích lọc như VD của bạn. Chắc mất chừng 30s
 

File đính kèm

  • Advanced Filter.rar
    631.4 KB · Đọc: 75
Cảm ơn Danh, để mình thử coi seo, hjhj
 
Danh ơi, bạn chạy thử dữ liệu khoản 63.000 dòng chưa? gồm khoảng 13 cột và 63.000 dòng lận, mình chạy nảy giờ chắc cụng 10 phút rùi đó, chưa xi nhê gì cả, hihi
 
Danh ơi, bạn chạy thử dữ liệu khoản 63.000 dòng chưa? gồm khoảng 13 cột và 63.000 dòng lận, mình chạy nảy giờ chắc cụng 10 phút rùi đó, chưa xi nhê gì cả, hihi

uh, đúng vậy, dữ liệu cũng hơi nhiều chạy cũng hơi chậm. Nhưng quan trọng là bạn đã làm được.

bạn gủi file lên đây để mình xem có cách nào cho chạy nhanh hơn không. bạn gửi file chỉ chứa sheet dữ liệu cần trích lọc thôi cho nhẹ nha.
 
sory Danh nha, lâu wá ko lên diễn đàn, vì mình lo mày mò cái file xem sao nếu thử hết cách rùi Phương mới dám nhờ tới các anh chị và bạn lần nữa, P nhờ hoài thấy ngại wá, người ta nói nếu ta chưa đọc cuốn sách ấy nói gì thì đừng nê hỏi có gì trong cuốn sách ấy, nên hổm rày lo tìm hỉu cách, P có nick của Danh trên yahú ađ rồi mà lên nhắn tin xã giao hoài nhung ko thấy trả lời, chắc bạn bận lắm......chúc bạn và cả nhà GPE sức khoẻ, thành công...., nick yahú của mình là: Fcome2004@yahoo.com, sky: sunglamthienvuong.
 
Web KT
Back
Top Bottom