HongViet nói:
Bạn phải lưu 12 bảng lương vô 12 tales để tính thuế TN & ~ gì #.
Để có được bảng tổng hợp thì dùng query. Nó sẽ tạo cho bạn nguồn B/C hàng tháng & in phiếu lương;
Không cần 12 tables mà chỉ cần trong table có 2 trường, WorkingYear, WorkingMonth là xong. Về sau muốn Cut - backup dữ liệu của năm/tháng nào thì làm câu SQL là xong. Muốn hiển thị, cập nhật thì trong câu SQL có Where WorkingYear = iCurentYear AND WorkingMonth = iCurentMonth
iCurentYear, iCurentMonth là 2 giá đối số của method tương ứng (thường do chọn từ ComboBox) (Tùy theo cách viết của bạn mà có những methods nào liên quan đến bảng lương)
Tương tự, để thiết kế bảng chấm công chi tiết theo tháng thì cũng nên có 2 trường WorkingYear và WorkingMonth. Đã là chấm công thì phải có chấm công theo ngày (là mỗi ô ngày trong tháng), và từ đó phải có bảng chấm công ngày (iWorkingDay). Đơn vị được phép chấm công có thể thiết kế nhỏ nhất là theo phút (thường thì làm theo giờ thôi, lớn nhất là buổi). Các giá trị của ngày khác có thể là phép, nghỉ ko lương, lễ, ốm, v.v... để từ đó có thể tính ra bảng tổng hợp chấm công theo tháng (làm bao nhiêu [đơn vị] hành chính, bao nhiêu [đơn vị] phép, v.v...)
nhưng phần lương sản phẩm mà tính theo tỷ lệ hoa hồng lũy tiến thì mình chịu thua không biết viết câu lệnh như thế nào?
Khi bạn đã phân tích chức năng phải làm như thế nào (hiểu chắc cách tính lương, phân bổ lương, v.v... như thế nào), phân tích dữ liệu kỹ càng dựa trên phân tích chức năng nghiệp vụ, thì bạn có thể làm được điều đó 1 cách hợp lý. Có điều chú ý là không phải viết 1 câu lệnh và rất nhiều câu lệnh để làm việc gì đó (chú ý tốc độ, tính chuẩn, tính mở,...). Nếu chỉ chăm chăm chú ý nó phải là 1 câu lệnh thì sẽ ko nghĩ ra thôi. Cố gắng thinking theo logic và thuật toán thì hay hơn.