SQL gộp dữ liệu nhiều dòng vào một dòng

Liên hệ QC

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
275
Được thích
65
Dear Anh chị
Em có 2 bảng: Bangduno và Bangnguonthu. Em dùng left Join để lấy thông tin nguồn thu từ bảng Bangnguonthu vào Bangduno. Tuy nhiên bảng Bangnguonthu có trường Nguồn thu nó có nhiều dòng dẫn tới là nó bị đúp dòng dữ liệu tại Bangduno.

Select a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu

From Bangduno a
left Join Bangnguonthu b

On a.ID=b.ID.

Do Nguồn thu tại bảng Bangnguonthu có nhiều dòng do một KH có nhiều nguồn thu nên khi Join bảng thì nó bị đúp số dòng kết quả bảng xuất ra. Giờ làm sao để em có thể gom nội dung tại Nguồn thu tại Bảng Bangnguonthu vào một dòng rồi mới Join bảng ạ
 
Lần chỉnh sửa cuối:
Dear Anh chị
Em có 2 bảng: Bangduno và Bangnguonthu. Em dùng left Join để lấy thông tin nguồn thu từ bảng Bangnguonthu vào Bangduno. Tuy nhiên bảng Bangnguonthu có trường Nguồn thu nó có nhiều dòng dẫn tới là nó bị đúp dòng dữ liệu tại Bangduno.

Select a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu

From Bangduno a
left Join Bangnguonthu b

On a.ID=b.ID.

Do Nguồn thu tại bảng Bangnguonthu có nhiều dòng do một KH có nhiều nguồn thu nên khi Join bảng thì nó bị đúp số dòng kết quả bảng xuất ra. Giờ làm sao để em có thể gom nội dung tại Nguồn thu tại Bảng Bangnguonthu vào một dòng rồi mới Join bảng ạ
Tìm hiểu lệnh GROUP BY
 
Group by em đang hiểu là liên quan đến tổng hợp về số ạ. Còn ở đây là cái của em chỗ này nó là Diễn giải ấy ạ. Kiểu Nguồn thu "Nguồn thu từ lương", Nguồn thu từ cho thuê nhà", Nguồn thu từ hoạt động kinh doanh. Chứ nó không phải là số 2 triệu, 3 triệu...Em đang hình dung phải tạo một bảng tạm thời ảo dùng Drop table để gom các dòng diễn giải nguồn thu này về một ô. Rồi mới Join với bảng này ạ.
 
Có thể thớt muốn trải các nguồn thu ra thành cột.
a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu A, b.Nguồn thu B, b.Nguồn thu C
Cái này Access có thể dùng lệnh Crosstab

Hoặc nếu các chi tiết nguồn thu khác nhau cho mỗi đơn vị, tức là nối các chuỗi nguồn thu lại thành 1 chuỗi.
a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu1 & b.Nguồn thu2 & b.Nguồn thu3
Cái này đối với SQL hơi khó làm, và tuỳ theo phiên bản.
T-SQL (SQL Server) thì thường người ta dùng Select for XML.
Với Access SQL thì phải tạo một query làm UDF nối các nguồn thu lại. Và query chính gọi hàm này.
Toi chỉ bàn với bạn thôi. Toi khong tiếp xúc người nói tiếng Tây.
 
Có thể thớt muốn nối chuỗi các nguồn thu lại.
a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu1 & b.Nguồn thu2 & b.Nguồn thu3

Cái này đối với SQL hơi khó làm, và tuỳ theo phiên bản.
T-SQL (SQL Server) thì thường người ta dùng Select for XML.
Với Access thì phải tạo một query làm UDF nối các nguồn thu lại. Và query chính gọi hàm này.
Toi chỉ bàn với bạn thôi. Toi khong tiếp xúc người nói tiếng Tây.
Theo đúng kiểu phòng dịch, thì bác đã có nguy cơ vì đã tiếp xúc quá gần rồi. :D
 
Có thể thớt muốn trải các nguồn thu ra thành cột.
a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu A, b.Nguồn thu B, b.Nguồn thu C
Cái này Access có thể dùng lệnh Crosstab

Hoặc nếu các chi tiết nguồn thu khác nhau cho mỗi đơn vị, tức là nối các chuỗi nguồn thu lại thành 1 chuỗi.
a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu1 & b.Nguồn thu2 & b.Nguồn thu3
Cái này đối với SQL hơi khó làm, và tuỳ theo phiên bản.
T-SQL (SQL Server) thì thường người ta dùng Select for XML.
Với Access SQL thì phải tạo một query làm UDF nối các nguồn thu lại. Và query chính gọi hàm này.
Toi chỉ bàn với bạn thôi. Toi khong tiếp xúc người nói tiếng Tây.
Hehe. Em có nói tiếng tây đâu anh. NHững từ Left Join, Join là nguôn ngữ của SQL mà anh.
 
Hehe. Em có nói tiếng tây đâu anh. NHững từ Left Join, Join là nguôn ngữ của SQL mà anh.
Đọc lại bài 1 thì rõ
Dear Anh chị
Em có 2 bảng: Bangduno và Bangnguonthu. Em dùng left Join để lấy thông tin nguồn thu từ bảng Bangnguonthu vào Bangduno. Tuy nhiên bảng Bangnguonthu có trường Nguồn thu nó có nhiều dòng dẫn tới là nó bị đúp dòng dữ liệu tại Bangduno.

Select a.ID, a.Duno, a.ngaygiaingan, a.tenKH, b.Nguồn thu

From Bangduno a
left Join Bangnguonthu b

On a.ID=b.ID.

Do Nguồn thu tại bảng Bangnguonthu có nhiều dòng do một KH có nhiều nguồn thu nên khi Join bảng thì nó bị đúp số dòng kết quả bảng xuất ra. Giờ làm sao để em có thể gom nội dung tại Nguồn thu tại Bảng Bangnguonthu vào một dòng rồi mới Join bảng ạ
 
Web KT
Back
Top Bottom