shinichikuto > 24-08-18, 10:31 PM
NguyenDungAnh > 24-08-18, 11:00 PM
NguyenDungAnh > 24-08-18, 11:04 PM
shinichikuto > 24-08-18, 11:21 PM
(24-08-18, 11:04 PM)NguyenDungAnh Đã viết: Table thế này nhé : tên hàng - số lượng - ngày - vị trí - tính chất
Query : tên hàng - soluongnhap: iif(tinhchat="nhập";số lượng;0) - soluongxuat: iif(tinhchat="xuất";số lượng;0) - vị trí- con lại : iif(tinhchat="nhập";số lượng;- số lượng).
Xong bác dùng total query Group tên hàng vị trí còn 3 cột còn lại để sum là ok
NguyenDungAnh > 25-08-18, 07:43 AM
tranthanhan1962 > 25-08-18, 02:37 PM
NguyenDungAnh > 26-08-18, 07:39 PM
tranthanhan1962 > 26-08-18, 10:53 PM
NguyenDungAnh > 26-08-18, 11:50 PM
shinichikuto > 27-08-18, 05:19 PM
(25-08-18, 02:37 PM)tranthanhan1962 Đã viết: Về nguyên tắc tính xuất tồn, đề nghị xử lý bằng 1 table của bạn NguyenDungAnh là tối ưu nhất. Chỉ cần thêm 1 field nghiệp vụ (nhập/xuất) là xử lý xong bài toán. Có thể dùng hàm if như cách của bạn NguyenDungAnh hoặc gán luôn giá trị tại field nghiệp vụ nhập là 1 xuất là -1. Kết quả giá trị nhập là dương còn giá trị xuất là âm. Chỉ cần một select query đơn giản rồi thêm total để tạo group là có ngay kết quả tồn kho. Cẩn thận, Union query không phải là một query tổng hợp các record của nhiều table mà là hợp các phần tử record của nhiều table. Vì vậy nếu các record giống nhau nó sẽ chỉ chừa 1 record. Do đó sẽ làm sai kết quả.
Ví dụ: Ngày 25/8/2018 nhập 3 lần hàng ABC của công ty X mỗi lần 50kg.
Ta nhập 3 record:
Ngày Nhà cung cấp Tên hàng Số lượng
25/8/2018 Công ty X ABC 50kg
25/8/2018 Công ty X ABC 50kg
25/8/2018 Công ty X ABC 50kg
Kết quả sau khi sử dũng Union query chỉ còn 1 dòng
25/8/2018 Công ty X ABC 50kg