nguyenthaitan87

New Member



Database của mình gồm 4 bảng chính : DetailData ( Chi tiết hàng hoá ), XUAT(ID,Date,MaHH,TenHH,So_Luong,TienThu), NHAP(ID,Date,MaHH,TenHH,So_Luong,Gia_Nhap) và 1 bảng XUATNHAP((ID,Date,MaHH,TenHH,So_Luong,Thanh_Tien) với giá trị cột So_Luong (+) Nhập, (-) xuất







mình muốn nó ra kết quả : ( MaHH,TenHH,SL_XUAT,SL_NHAP ,SL_TON, TTIEN_XUAT, TTIEN_NHAP) 1 bảng tổng hợp tổng nhập tổng xuất, số lượng tồn, thành trước v..v.từ ngày này đến ngày kia mình viết thế này thì nó ra kết quả sai :










Code:





SELECT XUATNHAP.MaHH, XUATNHAP.TenHH, Sum(NHAP.SO_LUONG) AS SL_NHAP,


Sum([XUAT.SO_LUONG]) AS SL_XUAT, Sum(XUATNHAP.SO_LUONG) AS SL_TON,


Sum(XUAT.Tien_Thu) AS TTIEN_XUAT,


Sum([NHAP.SO_LUONG]*[NHAP.GIA_NHAP]) AS TTIEN_NHAP





FROM XUATNHAP INNER JOIN (XUAT RIGHT JOIN (DetailData LEFT JOIN NHAP ON DetailData.TenHH = NHAP.TenHH)


ON XUAT.TenHH = DetailData.TenHH) ON XUATNHAP.TenHH = DetailData.TenHH





WHERE (((XUATNHAP.NGAY) Between [tungay] And [denngay]))


GROUP BY XUATNHAP.MaHH, XUATNHAP.TenHH;


Mọi người giúp sửa lại giúp mình Đoạn trên phù hợp với kết quả với.
 

lovely_bear199

New Member





















Nguyên văn bởi frankie123








Database của mình gồm 4 bảng chính : DetailData ( Chi tiết hàng hoá ), XUAT(ID,Date,MaHH,TenHH,So_Luong,TienThu), NHAP(ID,Date,MaHH,TenHH,So_Luong,Gia_Nhap) và 1 bảng XUATNHAP((ID,Date,MaHH,TenHH,So_Luong,Thanh_Tien) với giá trị cột So_Luong (+) Nhập, (-) xuất







mình muốn nó ra kết quả : ( MaHH,TenHH,SL_XUAT,SL_NHAP ,SL_TON, TTIEN_XUAT, TTIEN_NHAP) 1 bảng tổng hợp tổng nhập tổng xuất, số lượng tồn, thành trước v..v.từ ngày này đến ngày kia mình viết thế này thì nó ra kết quả sai :










Code:





SELECT XUATNHAP.MaHH, XUATNHAP.TenHH, Sum(NHAP.SO_LUONG) AS SL_NHAP,


Sum([XUAT.SO_LUONG]) AS SL_XUAT, Sum(XUATNHAP.SO_LUONG) AS SL_TON,


Sum(XUAT.Tien_Thu) AS TTIEN_XUAT,


Sum([NHAP.SO_LUONG]*[NHAP.GIA_NHAP]) AS TTIEN_NHAP





FROM XUATNHAP INNER JOIN (XUAT RIGHT JOIN (DetailData LEFT JOIN NHAP ON DetailData.TenHH = NHAP.TenHH)


ON XUAT.TenHH = DetailData.TenHH) ON XUATNHAP.TenHH = DetailData.TenHH





WHERE (((XUATNHAP.NGAY) Between [tungay] And [denngay]))


GROUP BY XUATNHAP.MaHH, XUATNHAP.TenHH;


Mọi người giúp sửa lại giúp mình Đoạn trên phù hợp với kết quả với.











Mình không hiểu lắm về CSDL của bạn. Bảng XUATNHAP bạn lưu dữ liệu gì?



Bạn up File lên để tất cả người giúp.
 

mi158

New Member





















Nguyên văn bởi frankie123








Database của mình gồm 4 bảng chính : DetailData ( Chi tiết hàng hoá ), XUAT(ID,Date,MaHH,TenHH,So_Luong,TienThu), NHAP(ID,Date,MaHH,TenHH,So_Luong,Gia_Nhap) và 1 bảng XUATNHAP((ID,Date,MaHH,TenHH,So_Luong,Thanh_Tien) với giá trị cột So_Luong (+) Nhập, (-) xuất





mình muốn nó ra kết quả : ( MaHH,TenHH,SL_XUAT,SL_NHAP ,SL_TON, TTIEN_XUAT, TTIEN_NHAP) 1 bảng tổng hợp tổng nhập tổng xuất, số lượng tồn, thành trước v..v.từ ngày này đến ngày kia mình viết thế này thì nó ra kết quả sai :


....











Đã có bảng NHAP, bảng XUAT, vậy còn bảng XUATNHAP để làm gì vậy?


Thiết kế như thế này có vẻ không ổn.


Mặt khác, số lượng tồn mà bạn cần có làm sao phản ánh đúng số lượng tồn thực sự bởi vì những mặt hàng có sẵn số lượng tồn đầu, bạn sẽ xử lý ra sao?
 

bungchao_COol

New Member



Thank tất cả người vừa trả lời. Mình up database lên để tất cả người xem sẽ rõ hơn.







Bảng XUATNHAP là bảng mà mình dùng để lưu trữ dữ liệu vừa Nhập vừa Xuất. Để phân biệt giá trị nào là Xuất và Nhập trong bảng XUATNHAP mình phân biệt bằng giá trị âm(-) là Xuất, còn dương(+) là nhập.







Đã có bảng XUAT và bảng NHAP rồi nhưng mình vẫn muốn có thêm bảng XUATNHAP để có thể nghiên cứu dựphòng chốngcho 1 giải thuật khác về xuất nhập tồn mà thôi.







ví dụ muốn lấy tổng số lượng tồn đến nay mình chỉ cần SUM cột SO_LUONG trong bảng XUATNHAP là có ngay kết quả, không nên phải mất công tính toán từ bảng NHAP và bảng XUAT rồi mới ra kết quả.







Về số lượng tồn thực sự như anh phatnq2002 nói đúng là cả 1 vấn đề nan giải. Mình có tìm hiểu trên google thì chắc anh đang nói đến tồn đầu tồn cuối. Vấn đề mình không biết cách làm là làm sao kết chuyển dữ liệu từ tồn cuối tháng này sang tồn đầu tháng kia.







Hiện nay mình rối quá . các bạn xem giúp database của mình xem có vấn đề gì ko? và mình muốn tính tồn thì phải làm những gì?















pass: sm300huu
 

pt200089

New Member





















Nguyên văn bởi frankie123








Database của mình gồm 4 bảng chính : DetailData ( Chi tiết hàng hoá ), XUAT(ID,Date,MaHH,TenHH,So_Luong,TienThu), NHAP(ID,Date,MaHH,TenHH,So_Luong,Gia_Nhap) và 1 bảng XUATNHAP((ID,Date,MaHH,TenHH,So_Luong,Thanh_Tien) với giá trị cột So_Luong (+) Nhập, (-) xuất







mình muốn nó ra kết quả : ( MaHH,TenHH,SL_XUAT,SL_NHAP ,SL_TON, TTIEN_XUAT, TTIEN_NHAP) 1 bảng tổng hợp tổng nhập tổng xuất, số lượng tồn, thành trước v..v.từ ngày này đến ngày kia mình viết thế này thì nó ra kết quả sai :










Code:





SELECT XUATNHAP.MaHH, XUATNHAP.TenHH, Sum(NHAP.SO_LUONG) AS SL_NHAP,


Sum([XUAT.SO_LUONG]) AS SL_XUAT, Sum(XUATNHAP.SO_LUONG) AS SL_TON,


Sum(XUAT.Tien_Thu) AS TTIEN_XUAT,


Sum([NHAP.SO_LUONG]*[NHAP.GIA_NHAP]) AS TTIEN_NHAP





FROM XUATNHAP INNER JOIN (XUAT RIGHT JOIN (DetailData LEFT JOIN NHAP ON DetailData.TenHH = NHAP.TenHH)


ON XUAT.TenHH = DetailData.TenHH) ON XUATNHAP.TenHH = DetailData.TenHH





WHERE (((XUATNHAP.NGAY) Between [tungay] And [denngay]))


GROUP BY XUATNHAP.MaHH, XUATNHAP.TenHH;


Mọi người giúp sửa lại giúp mình Đoạn trên phù hợp với kết quả với.











1/ Đã nhận được thông tin của bạn nhưng thời (gian) gian này bận nhiều chuyện quá, không làm cho bạn được, qua đây chỉ gợi ý bạn một số vấn đề để bạn tự nghiên cứu và áp dụng nhé



2/ CSDL của bạn rất rối. Để theo dõi NXT, chỉ cần hai bảng NHAP và XUAT( thậm chí chỉ cần một bảng chung NHAPXUAT cũng được) và một bảng HANGHOA ghi danh mục hàng hóa



3/ Tạo một query chứa thông tin chung cả nhập và xuất



4/ Từ query này xác định tồn đầu thôngqua trương Ngay(


Nhập hai query này với bảng HANGHOA để tính nhập xuất Tồn



5, Nhập tồn đầu kỳ như một phiếu nhập bình thường với Ngay là ngay trước ngày phát sinh của các chứng từ nhập xuất khác.



Hy vọng bạn hiểu cách làm. Khi nào rảnh sẻ gửi cho bạn file mẫu



Chúc bạn thành công
 

Weatherly

New Member



Cách của XuanThanh là ổn rồi đó.



Nếu có gì mắc, bạn lại post lên để tất cả người giúp.
 

cobe_doihon9150

New Member



Thank các bạn vừa giúp đỡ, các bạn thật Pro. Mình thì còn gà lắm. Mình đang làm theo cách của XuanThanh. Nếu thành công mình post lên cho tất cả người xem.
 

Will_Nevercry

New Member



Bạn viết sai cấu trúc sql rồi, làm sao có kết quả được:



câu lệnh trên phải thay phần điều kiện WHERE bằng HAVING. Muốn rõ hơn về sql thì lên google.com.vn tìm sẽ thấy rất rõ.
 

gaplatu_1991

New Member



Chào cả nhà!







Thank tất cả người mình vừa tính được số lượng tồn kho .v...v.. Nhưng mình còn 1 khó khăn cuối nữa mong tất cả người giúp mình.







Bây giờ mình sẽ tính "giá trị hàng tồn kho" như thế nào cho chính xác? khi mà mình vừa có số lượng tồn rồi nhưng do biến động thị trường thì giá cả mặt hàng "cá" của mình lại luôn thay đổi. Điêù này đẫn đến 1 số lượng tồn lại có đến nhiều giá.







Ví dụ như 1 mặt hàng: cá basa







ngày: 01 Nhập : 10kg Xuất : 5kg với giá nhập là : 50.000



ngày: 02 Nhập : 20kg Xuất : 15kg với giá nhập là : 60.000







đến đây thì SL_TONKHO = (10+20) - (5+15) = 10kg



và 10kg cá tồn này lại có đến 2 giá. nên mình không biết tính sao nữa ?
 

lebaohoang_1988

New Member





















Nguyên văn bởi frankie123








Chào cả nhà!





Thank tất cả người mình vừa tính được số lượng tồn kho .v...v.. Nhưng mình còn 1 khó khăn cuối nữa mong tất cả người giúp mình.





Bây giờ mình sẽ tính "giá trị hàng tồn kho" như thế nào cho chính xác? khi mà mình vừa có số lượng tồn rồi nhưng do biến động thị trường thì giá cả mặt hàng "cá" của mình lại luôn thay đổi. Điêù này đẫn đến 1 số lượng tồn lại có đến nhiều giá.





Ví dụ như 1 mặt hàng: cá basa





ngày: 01 Nhập : 10kg Xuất : 5kg với giá nhập là : 50.000


ngày: 02 Nhập : 20kg Xuất : 15kg với giá nhập là : 60.000





đến đây thì SL_TONKHO = (10+20) - (5+15) = 10kg


và 10kg cá tồn này lại có đến 2 giá. nên mình không biết tính sao nữa ?











Nếu không có gì phức tạp lắm thì bạn sử dụng giá bình quân gia quyền.
 

Các chủ đề có liên quan khác

Top