• ベストアンサー

開所日数の計算

お世話になります。 記録テーブルのフィールドが利用日,利用者,利用時間とします。 同一利用日に複数の人が利用します。 8月1日 8名利用 8月2日 6名利用 8月3日 4名利用 とするとテーブルには 18 のレコードがあることになります このとき延べ日数は COUNT(*) で[18]ですが 営業日数はどのような式になりますか? 結果は[3]としたいのですが 宜しくお願いします。

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

  • ベストアンサー
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.5

#3です。 >レポートフッターに[=Count([*])]求まるのですが… レポートフィールドで求める場合ですね。 いくつか方法がありますが 方式1:レポートフッターで求める場合 (1)クエリを新規追加します。 SQLビューに以下を貼り付けます。 SELECT TBL.利用日 FROM TBL GROUP BY TBL.利用日; (2)レポートに追加したTextBoxのコントロールソースに以下を入力します。 =DCount("*","追加クエリ") 方式2:(現実的では無いですが…この様な方式もあり) (1)クエリを新規追加します。 SQLビューに以下を貼り付けます。 SELECT TBL.利用日, TBL.利用者, TBL.フリガナ, TBL.開始時刻, TBL.終了時刻, TBL.利用時間, TBL.利用料, TBL.食費, GRP.営業日数 FROM TBL, (select count(*) AS 営業日数 from (select TBL.利用日 from TBL group by TBL.利用日)). AS GRP ORDER BY TBL.利用日, TBL.フリガナ, TBL.開始時刻; (2)レポートのレコードソースに追加クエリを指定します。 (3)レポートに追加したTextBoxのコントロールソースに「営業日数」を指定します。 方式3: レポートのVBAコードで求め、レポートフィールド(非連結)に格納します。 お試しを!!

shinkami
質問者

お礼

方式1で解決しました。 有難うございました。 方式2は何度か試しましたが、自分のやり方がどこか違うのでしょうSQL文を受けてくれません。パスしましす。 方式3 VBA使用 方式1は分かりやすいのですがクエリーの数がどんどん増えてネーミングの管理が大変なので最終的にはVBA使用で行きたいと思います。 落ち着いたら質問を新しく立ち上げますので、お気づきになられましたら再度ご指導頂けますようにお願いします。

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

その他の回答 (4)

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.4

#3です。 >select count(*) AS 営業日 from ( select 利用日,count(*) AS 日別人数 from 記録 group by 利用日) をレコードソースに入れても動きます。 まずSQLの確認を行なってみてください。 クエリーデザインからSQLビューを表示し、上記の様なSQL文を貼り付けた後、データシートビューを表示する事で、SQLの取得状況が確認できます。 具体的なSQL文を提示いただくと具体的な回答ができますが、以下が参考になるでしょうか? Group byを利用する場合、 (1)select 利用日, (2)group by 利用日 の様に求めるフィールドとGroup by句で指定するフィールドが一致していない場合はえらーになります。

shinkami
質問者

補足

判りにくい質問ですが、宜しくお願いします。 今のレコードソース文は SELECT TBL.利用日, TBL.利用者, TBL.フリガナ, TBL.開始時刻, TBL.終了時刻, TBL.利用時間, TBL.利用料, TBL.食費 FROM TBL ORDER BY TBL.利用日, TBL.フリガナ, TBL.開始時刻; (上記でTBLは実際にはTBL利用記録修出で1ヶ月のデータ担っています。} TBLのテーブルには[利用日],[利用者]等のフィールドに、次のようなデータが入っています。 8/1,池田 8/1,石田 8/1,井上 8/1,田中 8/2,池田 8/2,石田 8/2,井上 8/2,田中 8/2,中村 8/2,渡辺 8/6,石田 8/6,井上 8/6,田中 8/7,中村 8/7,渡辺 このデータより延べ日数は レポートフッターに[=Count([*])]で求まるのですが 開所日数を求める方法が見つかりません このデータでは4日(5/1,8/2,8/6,8/7)としたいのです

全文を見る
すると、全ての回答が全文表示されます。
  • x0000x
  • ベストアンサー率52% (67/127)
回答No.3

>営業日数はどのような式になりますか? 結果は[3]としたいのですが 営業日数=利用日は営業日のみであり、 8月1日 8月2日 8月3日 8月5日 の場合に4を求める場合、 MS-ACCESSなら以下のクエリで求めることができます。 日別に求めるSQLをサブクエリとし、 サブクエリのレコード件数を求めます。 select count(*) AS 営業日 from ( select 利用日,count(*) AS 日別人数 from 記録 group by 利用日)

shinkami
質問者

お礼

有難うございます ご面倒かけて申し訳ございません サブクエリーはレコードソースのフィールドに定義してよいのですか 開所日: (select count(*) as 利用日 from (TBL利用記録抽出)) としましたが、実行時エラー「サブクエリでは、マルチレベルGUROP BY 句は使用できません]となります。

shinkami
質問者

補足

すみません。質問不足でした。 アプリケーションソフトはACCESSです。

全文を見る
すると、全ての回答が全文表示されます。
  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

下記URLの過去ログで、#3の方のご回答が参考になると思います。 「[EXCEL]列の項目を何種類かカウントする方法」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1496804

全文を見る
すると、全ての回答が全文表示されます。
  • dokinhime
  • ベストアンサー率30% (4/13)
回答No.1

記録テーブルが日付順にならんでいるのであれば(あるいは日付順に並べ替えて) D1のセルに =IF(A1=A2,0,1) という関数を入れて、オートフィルでD列最終行まで数式をいれます。 そして、最後にSUM関数でD列を合計してはどうでしょうか? (↑A列1行目からデータが始まっているものとみなした場合の式です。1行目がタイトルの場合 D2のセルに =IF(A2=A3,0,1) を入れて下さい。)

shinkami
質問者

補足

すみません。質問不足でした。 アプリケーションソフトはACCESSです。

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

関連するQ&A

  • ACCESSのレポートで実人数と実日数を付加したいのですが

    ACCESSのレポートで実人数と実日数を付加したいのですが デイハウス利用者の利用記録のテーブル[T 利用記録]があります このテーブルに利用日、利用者のフィールドがあります。 レポートフッタ-に利用日及び利用者の重複を除いた実日数と実人数を 印刷することができますか 延べ日数または延べ人数はcount(*)で印刷出来ますが

  • Accessでの計算

    Access2002の質問です。 クエリに式のフィールドを追加して、そこで計算をさす場合、一つ前のレコードの値から引き算をするには、どうしたらいいのでしょう。 例えば次のような前回の入金日から今回の入金日までに要した 日数を求める場合です。 レコードの番号 フィールド フィールド フィールド(式)    ↓      ↓    ↓     ↓                    日付   入金額   経過日数    1  2002/03/01   1000     A    2  2002/03/11   2000     B    3  2002/03/15   1500     C    4  2002/03/20   3000     D A.B.C.Dを求めたいのです。    Aは当然0日です    Bはレコード番号1からレコード番号2に要した日数です(10日)    Cはレコード番号2からレコード番号3に要した日数です(4日)    Dはレコード番号3からレコード番号4に要した日数です(5日) Accessに挑戦して孤軍奮闘しています。 でも難しくわからない点が多くて挫折しかけています。 どうかお助けください。

  • Accessで経過日数を求める関数を教えていただけないでしょうか。

    アクセスで経過日数を求めたいのですが、次のような場合はどのような式を組めばよいのでしょうか? フィールド: 請求日 支払日 支払確認日 新たに設ける関数式フィールド:経過日数 請求日から20日過ぎて、なおかつ支払確定日が空白のレコードを「経過日数」フィールドに経過日数の数値で返したい。 どなたかおわかりになる方がいらっしゃいましたら、教えていただけないでしょうか。 よろしくお願いいたします。

  • Access2000での日数の計算

    データベースの素人です。訳あって、データベースを作成することになりました。 ソフトはAccess2000を使用しております。 例えば「本体」というテーブルのフィールド項目に ID 荷物の受注日   荷物の発送日   所要日数 という項目があります。 同じくフォームにもこのとおりの項目があります。 「荷物の受注日」と「荷物の発送日」を手入力するのですが、「所要日数」だけは自動で計算をしたいのです。 マニュアル本とにらめっこをしながら、当初、フォーム上の「所要日数」の入力場所のプロパティ→データタブのコントロールソースに DateDiff("y",[荷物の受注日],[荷物の発送日]) と入力しました。 これで確かにフォームに入力した日付データに対して「所要日数」も表示されました。 しかし、「本体」テーブルのデータには、手入力した日付データは登録されているものの、「所要日数」は登録されていませんでした。 手入力した日付データを残したまま、今度はクエリを用いて「本体」テーブルのクエリを作ってみました。 クエリにて「所要日数」のところのフィールドに 所要日数: DateDiff("y",[本体]![荷物の受注日],[本体]![荷物の発送日]) と入力して、クエリを実行すると、確かにクエリの中の「所要日数」のところにはデータが出てきます。 しかしながら「本体」テーブルにも、フォーム上にもデータは出てきません。 いったいどのようにすれば、フォーム上にて手入力をした日付データに対して、所要日数を自動で計算し、そのデータが「本体」テーブルにも記録されるのでしょうか? どなたかお分かりになるかた、宜しくお願いいたします。

  • エクセルの日数計算について

    エクセル初心者です。 日数を求める計算式を教えてください。年とかではなく、○○日という計算です。 例えば、 平成10年2月1日 平成21年5月5日 という2つの日数を求めるのですが、求めるときに H11・12・31以前 ○○日 H12・1・1~H13・12・31 ○○日 H14・1・1~H18・12・31 ○○日 H19・1・1~H19・12・31 ○○日 H20・1・1~H20・12・31 ○○日 H21・1・1~          ○○日 と上記の期間をそれぞれ求める式を教えてください。 よろしくお願いします

  • データより 稼動日数を出したい

    データから 下記のような 稼働日数を出したいのですが。 一日に同じ機械で 何点か加工します。 ピボットテーブルを使うと  データの個数で返されてしまうのですが 何か良い方法は ありませんか?   宜しくお願いします。 結果    稼働日数 機械1   2 機械2   2 機械3   1 データ 日付   製品   機械名 10月1日   1   機械1 10月1日   2   機械1 10月1日   3   機械1 10月2日   4   機械1 10月2日   5   機械1 10月2日   7   機械2 10月3日   7   機械2 10月3日   15   機械3 ピボットテーブル作成   データの個数 / 日付 機械名   集計 機械1   5 機械2   2 機械3   1 総計    8

  • 翌営業日までの日数をSQLで求めたい

    日付と休日フラグの2つのフィールドを持つ カレンダーテーブルを使用して 翌営業日までの日数を求めるSQLを教えていただけ ますでしょうか。 使用環境はaccess2007です。 カレンダーテーブル date flg ---- --- 4/1 0 → 3(翌営業日まで3日間) 4/2 1 → 2(翌営業日まで2日間) 4/3 1 → 1(翌営業日まで1日間) 4/4 0 → 1(翌営業日まで1日間) 4/5 0 → 1(翌営業日まで1日間) よろしくお願いいたします。

  • 平均在院日数について教えて下さい

    医療機関に勤めるものですが、平均在院日数について教えて下さい! 例えば、Aさんが4月29日~5月3日まで入院、Bさんが5月1日~5日まで、Cさんが2日~4日まで入院した場合、5月の平均在院日数は何日でしょうか。 在院患者延べ数は、5月1日が二人、2日が三人…これを5日まで足していき、11人。新入院+退院は5人、という考え方であっていますか。 どなたか分かりやすくご教示下さい!

  • DATE型同士で日数計算し、日数が短い順番に並べる

    独学でPHPを勉強しています。 一つ分からない事があったので詳しい方にお聞きしたいです。 DATE型同士で日数を算出し、日数が短い順番に並べたいと思っています。 テーブルは下記のようにしました。 テーブル名:office name(VARCHAR型)|in(DATE型)|out(DATE型) 佐藤|2010-11-10|2010-12-13 田中|2010-10-30|2012-01-30 水谷|2009-09-20|2011-03-20 上記のテーブルでいうと次のようなランキングにしたいです。 佐藤 33日 田中 1年92日 水谷 1年197日 このようにDATE型同士で日数を算出する場合、どのようなSQL文になるでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • エクセルで特定日からの経過日数を表示する方法

    エクセルでの営業記録の作成を依頼されました。 その中に、顧客を訪問した日からの進捗を記録する のですが、顧客訪問からの営業日日数というセルを 作らないといけません。例えば、6月1日を顧客訪問日 とすれば、6月2日は2日目、3日は3日目、4,5日は週末 なので飛んで6日(月)が4日目といった具合です。 これを自動計算で表示されるようにしたいのですが、 その方法がわかりません。 エクセルの日付表示は=NOW( )しか知りません。 例えば、A1に特定日6月1日と入力してB1に 「=A1-NOW( )」のような計算式を入れれば良いと 思ったのですが、さすがにうまくいきませんでした。 もし、平日のみを計算するのが難しそうでしたら、 特定日から休日を含めた実日数でも良いです。 お願いします。

専門家に質問してみよう