thì chỉ cần select cái gì cần hiển thị trong datagriv thôi, mà ko phải chỉ 2 bảng mà có thể nhiều là khác
select tb1.a,tb2.b,tb3.c from tb1 inner join tb2 on tb1.key1=tb2.key2 inner join tb3 on tb2.key2=tb3.key3
Chào các bạn
Mình đang có vấn đề về việc load dữ liệu từ database lên datagridview
Với 2 bảng trong database:
1. PHIEUXUAT(MAPHIEUXUAT, NGAYXUAT, TONGSOLUONG)
2. PHIEUNHAP(MAPHIEUNHAP, NGAYNHAP, TONGSOLUONG, TONGGIATRI)
Có cách nào đưa lên 1 datagridview với các cột (MAPHIEU, NGAY, TONGSOLUONG, TONGGIATRI) không?
@@
thì chỉ cần select cái gì cần hiển thị trong datagriv thôi, mà ko phải chỉ 2 bảng mà có thể nhiều là khác
select tb1.a,tb2.b,tb3.c from tb1 inner join tb2 on tb1.key1=tb2.key2 inner join tb3 on tb2.key2=tb3.key3
I will wait you
Cơ bản làm việc CSDL không phải là các câu lệnh truy xuất. Mà là sự xác định liên hê dữ liệu giữa các bảng với nhau.
Vấn đề của bạn đưa ra chưa được xác định rõ ràng. MAPHIEUXUAT và MAPHIEUNHAP liên hệ với nhau như thế nào? Nếu chúng chẳng có liên hệ gì cả thì làm sao mà join?
Khi đưa ra Gridview các cột
MAPHIEU, NGAY, TONGSOLUONG, TONGGIATRI
thì MAPHIEU tương ứng với MAPHIEUXUAT hay MAPHIEUNHAP?
và NGAY là NGAYXUAT hay NGAYNHAP?
vân vân...
nếu ko có mối quan hệ gì mà muốn đỗ dữ liệu từ 2 bảng trở lên vào DataGridView thì có thể dùng DataSet.
bongda24h.tv
MAPHIEU sẽ chứa cả 2 thông tin MAPHIEUXUAT và MAPHIEUNHAP
NGAY sẽ chứa cả 2 thông tin NGAYXUAT và NGAYNHAP
Liệu như thế có được không ? @@
Ví dụ:
bảng PHIEUXUAT
///////////////////////////////////////////////////////////
// MAPHIEUXUAT // NGAYXUAT // TONGSOLUONG //
//////////////////////////////////////////////////////////
// XK0001 // 03/03/2011 // 1.000 //
// XK0002 // 03/03/2011 // 2.000 //
////////////////////////////////////////////////////////
bảng PHIEUNHAP
//////////////////////////////////////////////////////////////////////////
// MAPHIEUNHAP // NGAYNHAP // TONGSOLUONG // TONGGIATRI //
///////////////////////////////////////////////////////////////////////////
// NK0001 // 05/05/2011 // 500 // 60.000.000 //
// NK0002 // 07/07/2011 // 500 // 50.000.000 //
//////////////////////////////////////////////////////////////////////////
Kết quả mong muốn
///////////////////////////////////////////////////////////////////////////
// MAPHIEUXUAT // NGAYXUAT // TONGSOLUONG // TONGGIATRI //
///////////////////////////////////////////////////////////////////////////
// XK0001 // 03/03/2011 // 1.000 // //
// XK0002 // 03/03/2011 // 2.000 // //
// NK0001 // 05/05/2011 // 500 // 60.000.000 //
// NK0002 // 07/07/2011 // 500 // 50.000.000 //
//////////////////////////////////////////////////////////////////////////
Không biết có được không @@
Đã được chỉnh sửa lần cuối bởi new_gel21 : 18-07-2011 lúc 02:01 PM.
Được. Nhưng cách gộp bảng phải là UNION (phép hội) chứ không phải JOIN (phép giao)
SELECT MaPhieuXuat [MaPhieuXuatNhap], NgayXuat [NgayXuatNhap], TongSoLuong, NULL [TongGiaTri]
FROM PHIEUXUAT
UNION ALL
SELECT MaPhieuNhap [MaPhieuXuatNhap], NgayNhap [NgayXuatNhap], TongSoLuong, TongGiaTri [TongGiaTri]
FROM PHIEUNHAP
Nếu muốn sort thì hơi khó chút
( SELECT MaPhieuXuat as MaPhieuXuatNhap, NgayXuat as NgayXuatNhap, TongSoLuong, NULL as TongGiaTri, 1 as sortorder
FROM PHIEUXUAT )
UNION ALL
( SELECT MaPhieuNhap as MaPhieuXuatNhap, NgayNhap as NgayXuatNhap, TongSoLuong, TongGiaTri, 2 as sortorder
FROM PHIEUNHAP )
order by sortorder, MaPhieuXuatNhap