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

khanhly94

Thành viên hoạt động
Tham gia ngày
1 Tháng năm 2019
Bài viết
123
Được thích
26
Điểm
170
Tuổi
26
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:

HieuCD

Chuyên gia GPE
Tham gia ngày
14 Tháng chín 2010
Bài viết
7,237
Được thích
14,261
Điểm
1,860
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
 

khanhly94

Thành viên hoạt động
Tham gia ngày
1 Tháng năm 2019
Bài viết
123
Được thích
26
Điểm
170
Tuổi
26
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 ạ.
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
10,204
Được thích
12,378
Điểm
1,560
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.
 

tigertiger

Coming back ...
Tham gia ngày
25 Tháng một 2007
Bài viết
1,646
Được thích
1,570
Điểm
860
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
 

khanhly94

Thành viên hoạt động
Tham gia ngày
1 Tháng năm 2019
Bài viết
123
Được thích
26
Điểm
170
Tuổi
26
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.
 

tigertiger

Coming back ...
Tham gia ngày
25 Tháng một 2007
Bài viết
1,646
Được thích
1,570
Điểm
860
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 ạ
 
Top Bottom