ここから本文です

MS-Access2016で月次の社員の在籍人数を集計する方法を教えてください。

mnt********さん

2019/6/2819:38:22

MS-Access2016で月次の社員の在籍人数を集計する方法を教えてください。

テーブル「社員」にフィールド「入社日(yyyy/mm/dd)」「退職日(yyyy/mm/dd)」「社員番号」がある場合、各月の月末時点の在籍人数を知りたいです。(2019年5月:x人、2019年6月:y人...)退職日が月末の場合はその月末は在籍とします。よろしくお願いします。

閲覧数:
18
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

2019/6/2900:33:11

yyyy年m月末日は

dateserial( yyyy, m - 1, 0 )

で求められます。データ型は日付/時刻型。

「入社日」「退職日」も日付/時刻型なら

入社日 <= dateserial( yyyy, m - 1, 0 ) AND 退職日 >= dateserial( yyyy, m - 1, 0 )

で判定できそうですが。

  • nor********さん

    2019/6/2910:59:50

    プラマイ間違ってました。

    dateserial( yyyy, m + 1, 0 )

    です。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

ipl********さん

2019/6/2905:41:30

ある年月(y,m)の最終日は翌月の1日の1日前と言う意味で
DateSerial(y,m+1,0)
になります。
ある日の在籍社員は、入社日がその日以前の人の中で、退社していないか退社日がその日以後の人になります。
と言う訳で、条件は
入社日:<=DateSerial([年],[月]+1,0)
退社日:Is Null Or >=DateSerial([年],[月]+1,0)
それをカウントするクエリを作ります。

入社日:カウント(入社日でなくてもいいけれどNullが無い項目)
入社日:Where 条件:<=DateSerial([年],[月]+1,0)
退社日:Where 条件:Is Null Or >=DateSerial([年],[月]+1,0)

どういう風に表示するのかが不明ですが、パラメータクエリになっているので実行すると、年と月を聞いてくるので、手打ちで試してください。

ある年月(y,m)の最終日は翌月の1日の1日前と言う意味で
DateSerial(y,m+1,0)...

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる