- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [SOFTWARE] Giới thiệu bộ phần mềm tính Kết Cấu Thép HatteSale, Mộng Đơn, Dầm, Sàn, Móng Cọc, Vách, Xà Gồ, Tính Tải Trọng
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
[SQLSERVER] Hướng dẫn xuất kho và trừ tồn realtime sử dụng cú pháp sum over( by partition)
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn tạo phiếu xuất kho canh theo hàng tồn giảm dần sử dụng cú pháp sum over by partition để tính lại hàng tồn trong sqlserver.
Nghiệp vụ xuất kho, là nghiệp vụ thường được sử dụng trong các phần mềm quản lý.
Thường thì khi chúng ta xuất kho thì phải kiểm tra trong kho có còn hàng tồn để xuất hay không? và phải làm sao để trừ tồn giảm dần
Mình ví dụ:
- Kho hàng của điện máy xanh TPHCM: đang còn tồn 2000 cái nồi cơm điện trong kho điện máy.
- Chi nhánh Tân Bình gởi yêu cầu xuất kho là 500 chiếc.
- Chi nhánh Phú Nhuận gởi yêu cầu xuất kho là 800 chiếc.
và Chi nhánh Bình Thạnh gởi yêu cầu xuất kho là 1000 chiếc.
Vậy thì các bạn nhìn thấy: thì kho sẽ không đủ số lượng tồn để xuất cho chi nhánh Bình Thạnh, vì khi xuất cho hai chi nhánh Tân Bình và Phú Nhuận hết tất cả 1300 chiếc, thì kho chỉ còn tồn lại 700 chiếc.
Không còn đủ 1000 chiếc để xuất cho chi nhánh Bình Thạnh.
Vậy yêu cầu đặt ra là mình thực hiện câu lệnh sql sau cho nó xử lý xuất được:
+ Tân Bình 500 chiếc.
+ Phú Nhuận 800 chiếc.
và Bình Thạnh còn lại là 700 chiếc.
Ví dụ: Trong dữ liệu mình có bảng tbl_test với dữ liệu như sau:
Các bạn theo dõi ở mavt: 003, thì các bạn sẽ thấy số lượng cần xuất là 900, nhưng số lượng tồn chỉ có 500.
Vậy bây giờ các bạn thực hiện câu truy vấn sau:
SELECT id,
mavt,
soluongton,
soluong,
iif(soluongton - SUM(soluong) OVER (PARTITION BY mavt ORDER BY id)>0, soluong, soluong + ( soluongton - SUM(soluong) OVER (PARTITION BY mavt ORDER BY id))) AS slxuat,
soluongton - SUM(soluong) OVER (PARTITION BY mavt ORDER BY id) AS sltonconlai
FROM tbl_test
Kết quả:
Nhìn kết quả các bạn sẽ thấy:
Ở dòng id 6: nó sẽ xuât đủ 100 và nó còn tồn là 400.
- id 7 yêu cầu xuất 500, nhưng kho chỉ còn 400 nên nó chỉ xuất 400.
Hy vọng với bài toán trên sẽ giúp được các bạn phần nào về xử lý cách xuất kho theo hàng tồn.
Nếu các bạn có giải pháp nào hay hơn, có thể góp ý cho chúng mình thêm tại trang hỏi đáp: http://hoidap.laptrinhvb.net
HAVE FUN