• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのテーブルに稼働日フィールドを追加したい)

Accessのテーブルに稼働日フィールドを追加したい

このQ&Aのポイント
  • ACCESSのAテーブルに[開始日]と[終了日]フィールドがあり、Bテーブルには[祝日]フィールドがあります。Aテーブルに新しいフィールドを追加し、[開始日]から[終了日]までの期間で土日と祝日を除いた日数を表示させたいです。
  • 期間内の日数と土日の日数はDATEDIFFで計算できますが、Bテーブルのデータ数を数えて引く方法がわかりません。より効果的な方法を教えていただきたいです。
  • 稼働日を計算するためには、期間内の日数から土日と祝日の日数を引く必要があります。Bテーブルのデータを数える方法を教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

失礼しました。終了日を入れるのを忘れてましたね SELECT Aテーブル.ID, Count(*) AS カウント FROM 数字, Aテーブル WHERE (((DateAdd("d",[数字],[開始日])) Not In (select 祝日 from Bテーブル) And (DateAdd("d",[数字],[開始日]))<=[終了日]) AND ((DatePart("w",DateAdd("d",[数字],[開始日])))<>1 And (DatePart("w",DateAdd("d",[数字],[開始日])))<>7)) GROUP BY Aテーブル.ID;

sistan
質問者

お礼

再度の回答本当のありがとうございます。 大変ありがたいです。 早速試してみたのですが、指定期間によって、1日足りなかったり2日足りなかったりする結果になってしまいます。 土日を抜いた数の指定方法が若干おかしいのかな・・・と思いまして検討中です。 たびたびで大変恐縮ですが、おわかりでしたらお教えいただけますでしょうか?宜しくお願いいたします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

いわゆるデバッグは実物を見ないと難しいですね その結果がおかしくなるサンプルをアップできますか? (期間テーブルと、休日テーブル、クエリのSQL) ご自分で検証するならアップしたSQLから作ったクエリをデザインビューで表示し 普通の抽出クエリに変えて抽出条件フィールドに表示チェックを入れれば 取り出されている日付や曜日が確認できます それで土日と休日以外がきちんと抽出されているか確認してください

sistan
質問者

お礼

度重なる丁寧な回答、ありがとうございます。 数字テーブル内の数字フィールドのデータを1から入力しておりました! 0からに変更して解決いたしました! 本当にありがとうございます。 つたない文章と足りない技術力にも関わらず丁寧に導いていただけまして、解決することができました。 本当にありがとうございました!

すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

もうひとつ数字だけのテーブルを用意します 数字 ----- 0 1 ・ ・ 100 <- 期間の最大値+余裕まで Aテーブルと数字テーブルから下のようなクエリを作ります このクエリはデザインビューで表示化可能ですから テーブル名をそちらのものに合わせて SQLビューにコピペしてからデザインビューで表示してください SELECT Aテーブル.ID, Count(*) AS カウント FROM 数字, Aテーブル WHERE (((DateAdd("d",[数字],[開始日])) Not In (select 祝日 from Bテーブル)) AND ((DatePart("w",DateAdd("d",[数字],[開始日])))<>1 And (DatePart("w",DateAdd("d",[数字],[開始日])))<>7)) GROUP BY Aテーブル.ID;

sistan
質問者

お礼

早速のご回答本当にありがとうございます。 [開始日]フィールドの日付から[終了日]フィールドまでの日付の期間のなかで土日の数と祝日テーブル内の期間内の日付の数をひきたいのですが、[終了日]フィールドの使い方がいまいちわからない状態です。 大変恐縮ですが、再度お教えいただけますでしょうか? どうぞ宜しくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A