アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ
Access2003を使っています

----------------------------------------------
__開始日時_________ ___終了日時_____検査内容__検査者名
2012/6/12 9:00 2012/6/12 11:00 検査A 名前
2012/6/12 10:00 2012/6/12 13:00 検査B 名前
2012/6/13 9:00 2012/6/13 10:00 検査C 名前
2012/6/14 10:00 2012/6/14 12:00 検査A 名前
----------------------------------------------
のデータから。

6/12 検査A 1件
検査B 1件
6/13 検査C 1件
6/14 検査A 1件

月合計
A検査 2件
B検査 1件
C検査 1件

と、日々の各合計と、月合計の2種類の合計を取りたいと思います。
どの様な方法を取ればいいのか教えていただけませんでしょうか?
よろしくお願いします。

A 回答 (2件)

開始日と終了日は必ず同一日でよろしいですか。


表示先はクエリでよろしいですか。

各々のクエリのデザインビューで下記のように設定してください。

日別の集計

フィールド______ 日付: DateValue([開始日時])________検査内容_____________件数: 検査内容
集計______________ グループ化_________________________________グループ化___________カウント_________
並べ替え________ 昇順________________________________________________________________________________________
表示_________________ レ_____________________________________________ レ_______________________ レ______________


月別の集計

フィールド______ 月: Month([開始日時]) __________________検査内容_____________件数: 検査内容
集計______________ グループ化_________________________________グループ化___________カウント_________
並べ替え________ 昇順________________________________________________________________________________________
表示_________________ レ_____________________________________________ レ_______________________ レ______________


SQLでは、

日別

SELECT DateValue([開始日時]) As 日付, 検査内容, Count(検査内容) As 件数
FROM テーブル名
GROUP BY DateValue([開始日時]), 検査内容
ORDER BY DateValue([開始日時]);

月別

SELECT Format([開始日時],"yyyy/mm") As 月, 検査内容, Count(検査内容) As 件数
FROM テーブル名
GROUP BY Format([開始日時],"yyyy/mm"), 検査内容
ORDER BY Format([開始日時],"yyyy/mm");
    • good
    • 0

まず選択するデータの期間をどうやって指定するのか書かれていませんが、この部分は自分で解決出来ると考えて良いですか?


パラメータークエリとしてデータ開く時に入力してやるとか、フォームに開始日と終了日を入力しておいてそのデータを元に処理するとか

で、選択したデータを元に集計結果出す方法ですが、簡単な方から(月合計)
選択したデータを検査内容別に件数を集計するのは 選択クエリから

フィールド:検査内容
テーブル:(このデータが格納されているテーブル名)
集計:グループ化
並び替え:昇順
表示:チェック入れる

フィールド:検査内容のカウント
テーブル:(このデータが格納されているテーブル名)
集計:カウント
並び替え:空欄でok
表示:チェック入れる

という2つの列があるクエリを実行すれば集計できます
これを SQL文で書くと(テーブル名をテーブル1としています)

SELECT テーブル1.検査内容,Count(テーブル1.検査内容) AS 検査内容のカウント FROM テーブル1 GROUP BY テーブル1.検査内容;


次に日々の集計ですが、これはデータが時間まで入力されているデータしか無いので、この部分を揃えてやる必要があります

月合計のクエリの最初の列に下記の物を追加してください

フィールド:日付:CDate(int([開始日]))
テーブル:空欄
集計:グループ化
並び替え:昇順
表示:チェックを入れる

SQL文では
SELECT CDate(int[開始日])) AS 日付,テーブル1.検査内容,Count(テーブル1,検査内容) AS 検査内容のカウント FROM テーブル1 GROUP BY CDate(int[開始日])),テーブル1.検査内容 ORDER BY CDate(int[開始日]));

これが、日々の集計用クエリです

クエリを加工するなり、クエリを元にフォームを作成するなりすれば良いでしょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!