Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

frankie123

New Member
Hội viên mới
Cần Giúp đỡ về giải thuật Tính Toán " Giá Trị Hàng Tồn Kho "

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 tiền 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 :

Mã:
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.
 
Sửa lần cuối:
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

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 tiền 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 :

Mã:
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 để mọi người giúp.
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

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 tiền 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?
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Cảm ơn mọi người đã trả lời. Mình up database lên để mọi 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 cho 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 cầ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 ko 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á :banghead:. 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ì? :hochanh:


http://www.mediafire.com/?l5vzm5z4mnd
pass: sm300huu
 
Sửa lần cuối:
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

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 tiền 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 :

Mã:
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 này bận nhiều việc 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(<TuNgay) và Nhap xuat trong kỳ (TuNgay<=Ngay<=DenNgay) rồi dung Tổng trên lưới Query để tính
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
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Cách của XuanThanh là ổn rồi đó.
Nếu có gì mắc, bạn lại post lên để mọi người giúp.
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Cảm ơn các bạn đã 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 mọi người xem.
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

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õ.
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Chào cả nhà!

Cảm ơn mọi người mình đã 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 mọi 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 đã 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 ko biết tính sao nữa ?:motsach:
 
Sửa lần cuối:
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Chào cả nhà!

Cảm ơn mọi người mình đã 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 mọi 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 đã 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 ko biết tính sao nữa ?:motsach:

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ần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

1/ Đã nhận được thông tin của bạn nhưng thời gian này bận nhiều việc 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(<TuNgay) và Nhap xuat trong kỳ (TuNgay<=Ngay<=DenNgay) rồi dung Tổng trên lưới Query để tính
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

Mình rất cám ơn bài viết của xuanthanh, vì mình đang viết một chương trình quản lý bán hàng nhỏ, về vấn đề tồn kho mình vẫn đang làm theo hướng của xuanthanh. Nhưng chỉ làm tới bước 4 thì...:211: Vấn đề của mình là:

- Mình tạo một query1 tồn đầu dựa vào trường Ngay<Tungay
- Tạo một query2 trong kỳ dựa vào Tungay<=Ngay<=Denngay
- Sau đó ghép 2 query này lại để có (Đầu Kỳ : Nhập/Xuất trong kỳ : Tồn cuối kỳ)
=> Nhưng kết quả xảy ra trường hợp: có những món hàng query1 có query2 không có, hoặc query2 có query1 không có( do lúc phát sinh). Lúc đó ghép 2 query lại chỉ được những món hàng có trong 2 query hoặc chỉ có trong query1 hoặc chỉ có trong query2.
Trong khi mình muốn tất cả các món hàng đều hiện lên, nếu cột nào không có phát sinh thì gán cho giá trị 0

Tới đây thì quá đau đầu rùi, có ai giúp mình giải nguy không vậy !?
:khocdudoi:
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Đã nhận được yêu cầu của bạn.
Mình Có thể đoán vấn đề bạn là ở chỗ Relationship. Vì bạn ko up database lên nên mình ko biết chính xác được.

Ví dụ : bạn có 1 bảng danh mục hàng hoá : table(DANHMUC). bạn tạo 2: query1, query2
sau đó bạn gộp 2 query này lại với nhau tạm gọi là query3 sẽ thì gồm 3 table(DANHMUC,Query1,Query2), khi tạo relationship chú ý :Include records from 'Query1' and only those records from 'DANHMUC' where the joined fields are equal.
tương tự cho query2.

Còn vấn đề cột phát sinh cho là 0 thì đơn giản thôi bạn dùng hàm IIF(). Bạn ko nói rõ là trong các table có các field gì nên cũng ko thể lập diều kiện IIF() chính xác. vấn đề này bạn tự nghiên cứu nhé.

Hy vọng là đúng với yêu cầu của bạn.
 
Sửa lần cuối:
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Cho em hỏi! Trong table nhập có ngày riêng, trong table xuất cũng có ngày riêng vậy làm sao viết điều kiện ngay (<tungay) hay tungay<=ngay<=denngay được các bác??? Em cũng có làm theo, ok hết nhưng không hiểu chỗ đó!
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Cho em hỏi! Trong table nhập có ngày riêng, trong table xuất cũng có ngày riêng vậy làm sao viết điều kiện ngay (<tungay) hay tungay<=ngay<=denngay được các bác??? Em cũng có làm theo, ok hết nhưng không hiểu chỗ đó!

Bạn đọc kỹ bài hướng dẫn của tôi sẽ biết cách làm vì phải tạo query đã rồi mới làm được
Thân
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Bạn đọc kỹ bài hướng dẫn của tôi sẽ biết cách làm vì phải tạo query đã rồi mới làm được
Em đọc kỹ lắm rồi, em đã tạp query thông tin chung về nhập và xuất nhưng không hiểu về cái ngày thôi... Mong bác giúp em sớm, vài ngày nữa em nộp bài rồi!

detaiQLK.mdb
 
Ðề: Cần Giúp đỡ về giải thuật Xuất-Nhập-Tồn từ ngày này đến ngày kia

Em đọc kỹ lắm rồi, em đã tạp query thông tin chung về nhập và xuất nhưng không hiểu về cái ngày thôi... Mong bác giúp em sớm, vài ngày nữa em nộp bài rồi!

detaiQLK.mdb

Đây là file của bạn. Hy vọng qua bài viết này, bạn và các bạn khác đang quan tâm tới việc tính tồn kho có thể làm được
Thân
 

Đính kèm

  • detaiQLK.rar
    525.8 KB · Lượt xem: 1,046

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top