- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [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
- [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
[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