Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Cách gộp 2 dòng trong query kết quả
#1
Em xin chào các bác, em có 1 vướng mắc muốn hỏi thế này ạ: Chấm công hàng tháng của em sẽ có Mã nghỉ, đến lúc tính lương thì nếu ai nghỉ phép năm thì họ vẫn được hưởng lương và đóng bảo hiểm như thường, nhưng trong tháng lại có 1 số cán bộ dùng hết phép năm rồi, chuyển sang dùng Nghỉ không lương, thì phải tính riêng những ngày nghỉ không lương này ra để trừ tiền lương đi (tức là 1 Mã cán bộ trong TblChamCong giờ có 2 MaNghi), thì khi em làm query, dùng iif Nghỉ phép năm gán cho = 0 cho cột số ngày nghỉ trong tháng thì sau có thể dùng TotalSum Số ngày nghỉ được; còn riêng Mã nghỉ, cũng iif gán cho = 0, nhưng vì MaNghi là Text nên không Sum được hay nó hiểu để gộp dòng được. Vậy cho em hỏi hướng giải quyết đoạn này với ạ, hay có cách nào nếu ai nghỉ 2 loại trong tháng thì chỉ hiện 1 dòng nghỉ khác phép năm với ạ. Em xin cảm ơn các bác
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#2
Tạo hai trường PhepNam va KhongLuong trong Table ChamCong dạng Number để ghi số ngày nghỉ thì có gì khó không?
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
(26-12-18, 11:17 AM)Xuân Thanh Đã viết: Tạo hai trường PhepNam va KhongLuong trong Table ChamCong dạng Number để ghi số ngày nghỉ thì có gì khó không?

Việc ấy không khó ạ, mà nghỉ có nhiều trường hợp, và còn tính bảo hiểm. Đây là file của em: "QrySoNgayNghiTinhV1-tam" để loại bỏ Nghỉ phép năm; "QrySoNgayNghiDiLamV1" để tính tổng số ngày nghỉ từ "QrySoNgayNghiTinhV1-tam"; mọi thứ ổn khi em làm sang "QryChiV1ChiNhanh" có mục BHXH (có xét trường Mã Nghỉ), mà nếu em Add MaNghi vào "QrySoNgayNghiDiLamV1" thì nó lại hiện lên tất cả, bỏ đi thì đúng, mà sang bên kia sẽ không làm được BHXH. Em vướng đoạn này mong bác và mọi người giúp ạ
(- Em vừa xem lại, em lỡ làm theo kiểu Mã nghỉ rồi ghi số ngày nghỉ; làm theo kiểu của bác: Số ngày nghỉ phép năm, số ngày nghỉ không lương, số ngày nghỉ thai sản, số ngày nghỉ ốm đau bệnh dài ngày, số ngày nghỉ..v.v thì nom giải quyết được cái vụ TotalSum theo điều kiện, mà giờ thiết kế lại hết query với form nhập liệu thì toi. Có cách nào giải quyết theo hướng em đã làm, xây dựng không ạ)
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#4
Dùng Sum cho trường số và DCount cho trường Text
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
(26-12-18, 11:44 AM)Xuân Thanh Đã viết: Dùng Sum cho trường số và DCount cho trường Text

Em chưa hiểu lắm ạ, đếm Mã nghỉ rồi làm tiếp thế nào ạ
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#6
Tốt nhất bạn nên ngồi thiết kế lại CSDL. Tôi có xem qua các table trong file trước của bạn, thấy không ổn chút nào.
Bạn phải lường trước những trường hợp có thể phát sinh trong việc tính lương, chấm công v.v.. xong mới ngồi thiết kế các table cho hợp lý, đầy đủ thông tin để sau này khi cần truy vấn hoặc code cũng thuận tiện hơn. Bạn thiết kế các table theo suy nghĩ đơn giản thì sau này xử lý phức tạp vậy thôi. Code chạy theo nó cũng mệt luôn.

Nói về trường hợp của bạn nêu trên: tại sao bạn không nghỉ đến trường hợp có 3, 4 dòng [Mã nghỉ] trong 1 tháng? 
- Ví dụ: tháng này tôi nghỉ triệt sản, nghỉ đám ma, nghỉ ốm, nghỉ không lương...
- Trường hợp nghỉ dài hạn thì bạn lưu thông tin nghỉ từ ngày - đến ngày như thế nào? rồi sau này khi cần truy vấn tháng đó có rơi vào khoảng nghỉ dài hạn của nhân viên đó hay không thì bạn xử lý truy vấn như thế nào. Vd: nghỉ 10 ngày: 3 ngày tháng 1, 7 ngày tháng 2 -> tính lương?
- Những trường hợp xin nghỉ nữa ngày hoặc 3, 4 tiếng thì lưu thông tin như thế nào để tính lương?
- Tháng nào tham gia BHXH, BHYT, tháng nào tạm ngưng đóng BHXH, BHYT ?
- Table nào theo dõi phép năm, kết chuyển phép năm sang năm sau cho nhân viên nếu họ không nghỉ hết v.v..

Nói chung nhưng thông tin nào liên quan chấm công, tính lương mà có tính đặc thù riêng để theo dõi, không gộp chung được thì bạn nên tách ra nhiều table. Sau này khi tính lương sẽ truy vấn từng module riêng rồi gộp thông tin lại để tính ra số giờ công, làm lương.

Một số hình ảnh demo:

- Table lưu thông tin các ngày nghỉ nhân viên:

[/url][url=https://flic.kr/p/2cprryR][Hình: 45553860205_cfbef5cb47_o.png]

[Hình: 44649794310_c32661c918_o.png]

[Hình: 45553916105_1e7e9c4c22_o.png]
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn vuthaiha90
#7
(26-12-18, 11:53 AM)ongke0711 Đã viết: Nói về trường hợp của bạn nêu trên: tại sao bạn không nghỉ đến trường hợp có 3, 4 dòng [Mã nghỉ] trong 1 tháng? 
- Ví dụ: tháng này tôi nghỉ triệt sản, nghỉ đám ma, nghỉ ốm, nghỉ không lương...
- Trường hợp nghỉ dài hạn thì bạn lưu thông tin nghỉ từ ngày - đến ngày như thế nào? rồi sau này khi cần truy vấn tháng đó có rơi vào khoảng nghỉ dài hạn của nhân viên đó hay không thì bạn xử lý truy vấn như thế nào. Vd: nghỉ 10 ngày: 3 ngày tháng 1, 7 ngày tháng 2 -> tính lương?
- Những trường hợp xin nghỉ nữa ngày hoặc 3, 4 tiếng thì lưu thông tin như thế nào để tính lương?
- Tháng nào tham gia BHXH, BHYT, tháng nào tạm ngưng đóng BHXH, BHYT ?
- Table nào theo dõi phép năm, kết chuyển phép năm sang năm sau cho nhân viên nếu họ không nghỉ hết v.v..

Nói chung nhưng thông tin nào liên quan chấm công, tính lương mà có tính đặc thù riêng để theo dõi, không gộp chung được thì bạn nên tách ra nhiều table. Sau này khi tính lương sẽ truy vấn từng module riêng rồi gộp thông tin lại để tính ra số giờ công, làm lương.

Một số hình ảnh demo:

[Hình: 44649794310_c32661c918_o.png]

[Hình: 32594031738_651981837b_o.png]

- Có ạ, em có nghĩ đến trường hợp có 3,4,5 mã nghỉ của 1 nhân viên trong tháng, nhưng mà chỗ em cần lọc mỗi NP năm, còn lại nghỉ gì cũng trừ lương
- Có ạ, trên form nhập liệu của em có nghỉ dài ngày Từ ngày đến ngày, tính số ngày nghỉ, đi làm, đủ mà bác, nếu nghỉ trên 4 ngày trong tháng có cách trừ lương khác. Tính lương chỗ em thì theo hệ số rồi trừ đi số ngày nghỉ không phải phép, vậy thôi
- Nghỉ 3,4 tiếng coi như nghỉ 0.5 ngày (ghi nghỉ 0.5 em để số ngày nghỉ dạng thập phân), vẫn trừ lương 0.5 ngày
- Phép năm chỗ em không lưu lại, ai không dùng hết thì coi như mất
- Bác tách hộ em xin 1 cái demo của bác không ạ
Chữ ký của vuthaiha90 vuthaiha90,gia nhập Thủ Thuật Access từ 26-02 -16.
Reply
Những người đã cảm ơn
#8
Tôi chỉ có thể demo cho bạn các table liên quan, còn về Form thì nó dính tùm lum code có quan hệ lẫn nhau, muốn tách cũng rất mất thời gian. 

Bên cạnh đó bạn nên tự ngâm cứu thiết kế các table rồi sau đó khi gặp vấn đề nảy sinh thì mới ngộ ra làm mình nên tổ chức table như thế nào từ đó bạn mới phát triển được kỹ năng tổ chức CSDL. Để làm CSDL về lương, chấm công bạn phải ngồi với bộ phận nhân sự, lương để hiểu rõ hết nghiệp vụ của họ, các chính sách liên quan đến lao động và tiền lương. Chứ như bạn nói nghỉ kiểu gì cũng trừ lương thì coi chừng phạm luật, người lao động kiện lại thì mệt. Vấn đề nữa là bạn nên thiết kế dự phòng, lường trước các trường hợp có thể phát sinh để tránh sau này khi công ty thay đổi chính sách nhân sự thì CSDL của bạn không thể đều chỉnh được nữa, muốn đều chỉnh thì phải mất nhiều công sức



Link CSDL demo: http://www.mediafire.com/file/ci4qvduevw1wmr8/Data_ChamCong%2528demo%2529.mdb/file
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn vuthaiha90
#9
Trước mắt bạn phải nắm vững chế độ tiền lương quy định cho nghỉ việc:
1/Nghỉ vẫn được nguyên lương: nghỉ phép năm (12 ngày, 14 ngày, 16 ngày tùy theo công việc, ví dụ như trong cùng cơ quan bộ phận văn phòng nghỉ 12 ngày, cánh tài xế lái xe tải được nghĩ 14 ngày, công nhân kho hóa chất được nghỉ 16 ngày), Kết hôn (nghỉ 3 ngày), Con kết hôn (nghỉ một ngày), Bố mẹ (cả bên vợ và bên chồng) chết, vợ hoặc chồng chết, con chết (nghỉ ba ngày), nghỉ thai sản, nghỉ bệnh theo luật bảo hiểm xã hội.
2/Nghỉ có phép không lương: theo đơn xin phép và không được tính lương (nghỉ xử lý công việc riêng, công việc nhà)
3/Cũng có khi cơ quan cho phép nghỉ nhưng vẫn được hưởng nguyên lương (nghỉ xem bóng đá, có khi cơ quan còn hỗ trợ tiền mua vé  014 )
4/Nghỉ không lương vượt qua số ngày qui định (chẳng những không tính lương ngày đó mà còn bị phạt trừ thêm lương). Ví dụ cơ quan chỉ cho phép nghỉ phép năm 12 ngày (theo luật lao động) và nghỉ không lương 15 (theo quy chế cơ quan) thì từ ngày nghỉ thứ 28 trở đi thì phạt trừ lương.
Vì vậy, khi chấm công buột phải chấm rõ theo từng trường hợp chứ không thể đưa ra cái query cộng dồn phép năm rồi trừ lương những ngày còn lại được.
Bạn có thể tham khảo ứng dụng dưới đây để viết ứng dụng cho riêng mình.
 Ứng dụng quản lý tiền lương thông qua bảng chấm công
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Xuân Thanh , vuthaiha90
#10
Trích dẫn:

(- Em vừa xem lại, em lỡ làm theo kiểu Mã nghỉ rồi ghi số ngày nghỉ; làm theo kiểu của bác: Số ngày nghỉ phép năm, số ngày nghỉ không lương, số ngày nghỉ thai sản, số ngày nghỉ ốm đau bệnh dài ngày, số ngày nghỉ..v.v thì nom giải quyết được cái vụ TotalSum theo điều kiện, mà giờ thiết kế lại hết query với form nhập liệu thì toi. Có cách nào giải quyết theo hướng em đã làm, xây dựng không ạ)



Nói thêm về việc tôi và anh tranthanhan1962 không trả lời trực tiếp về cách giải quyết trường hợp bạn yêu cầu mà nói nói các vấn đề xung quanh đó. Xin trích từ một bài viết khác:

"Việc xây dựng phần mềm,  sẽ yêu cầu nhiều hơn về kỹ năng giải quyết vấn đề so với viết code hoặc là hiểu biết về công nghệ. Nhưng để giỏi trong việc giải quyết vấn đề, chúng ta sẽ cần rất nhiều thời gian để luyện tập và tích luỹ kinh nghiệm. Một người kỹ sư phần mềm, trước hết, là một người giải quyết vấn đề, và sau đó, mới là một thợ code. Những thứ như ngôn ngữ lập trình, framework, giải thuật là các công cụ mà chúng ta có thể nắm được thông qua việc học tập. Còn giải quyết vấn đề, thì phức tạp hơn và khó học hơn, khi chúng ta cần phải luyện tập trong thời gian dài và cần cả người hướng dẫn nữa"

Do đó tôi và anh Ân hướng bạn phân tích tìm ra giải pháp giải quyết việc chấm công, tính lương cho hợp lý, tổ chức table cung cấp đầy đủ thông tin khi cần truy vấn. Sau đó mới tiến tới việc query như thế nào, rồ mới đến code cho form. 
Table chưa chuẩn mà bạn lo tới Form rồi thì sau cuốn theo nó giải quyết cái sai mệt luôn chưa kể không thể sửa mà phải bỏ làm lại. 
Chỉ là chút kinh nghiệm góp ý cho bạn thôi.

 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Xuân Thanh , tranthanhan1962 , vuthaiha90


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Checkbox ở Form trở thành điều kiện trong Query vuthaiha90 3 393 18-12-18, 07:25 PM
Bài mới nhất: ongke0711
  [Hỏi] Cách tính số ngày đã ở ngocthinh1126 1 275 16-12-18, 07:03 PM
Bài mới nhất: maidinhdan
  [Help] Tạo Query lấy dữ liệu từ 1 cột của Table khác theo điều kiện jeck09nt 3 523 01-12-18, 12:14 PM
Bài mới nhất: jeck09nt
  Query không cho kết quả đúng? feeling 5 728 17-10-18, 02:20 PM
Bài mới nhất: tranthanhan1962
  [Hỏi] query tuanhungkcs 2 343 12-10-18, 09:48 PM
Bài mới nhất: tuanhungkcs

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line| Phần mềm quản lý bán hàng, công nợ- tồn kho- nhà phân phối