- ベストアンサー
ACCESS初心者です!2
ACCESSで会員名簿を作成しています。 昨日も関連することについて質問させていただきました。↓ http://oshiete1.goo.ne.jp/kotaeru.php3?qid=1557202 『テーブル名簿』(会員番号・会員名)と『テーブル振替結果』(会員番号・振替日・金額)があります。 そのテーブルから一覧表を作成したいと思っています。 イメージとしては、↓のような表です。 会員番号 会員名 1月 2月 3月 4月・・・ 1 ○○○ 39 39 39 2 ××× 45 42 42 3 △△△ 42 42 42 合計 126 123 123 (1)ACCESSで一番下に合計欄を作成し、自動で計算されるように出来ますでしょうか。 (2)『テーブル振替結果』は毎月振替結果がでてから会員番号・振替日・金額を入力していくのですが、「yy/mm/dd」という入力から「1月」「2月」「3月」という項目に当てはめて金額をいれられるのでしょうか? また、このテーブルの形式で問題ないのでしょうか? お恥ずかしながら私の知識ではテーブルからクエリを作成し、クエリでテーブルをひもづけること・別フィールドで計算がというところまでです。 どうかお答えいただけますようお願いします<(_ _)>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
各月全てを表示となると、各月を表す別マスタが必要になると思います(月マスタテーブルのような) さらに、その月を基準に、各テーブルの連結や集計となるのかな? 単なる存在しているデータの集計でよければ、Accessなので、クロス集計を利用する手があります。 (月マスタを利用しても、クロス集計が手っ取り早いかもしれません。) (要注意:見易さのために、全角スペースを利用していますので、コピペする際は、全角スペースを半角に変換して張ってください。) SQLビューを開きましょう。 http://okweb.jp/kotaeru.php3?q=1545973 の#3でSQLビューの出す手順を書いてます ------------------------------------------------------------------------------ TRANSFORM Sum(金額) SELECT 会員番号, 会員名, Sum(金額) AS 合計金額 FROM ( SELECT 名簿.会員番号,名簿.会員名,結果ワーク.振替年月,金額 FROM 名簿 LEFT JOIN ( SELECT 会員番号,LEFT(FORMAT(振替日,"00000000"),6) AS 振替年月,金額 FROM 振替結果 ) 結果ワーク ON 名簿.会員番号 = 結果ワーク.会員番号 ) AS 名簿振替結合 GROUP BY 会員番号, 会員名 ORDER BY 会員番号 PIVOT 振替年月 ------------------------------------------------------------------------------ 年などの期間を絞りたいのであれば 「FROM 振替結果」 の下にWHERE句を足して、振替結果テーブルの期間を限定させることが可能です。
その他の回答 (3)
- TAK_999
- ベストアンサー率43% (42/96)
昨日の質問でグループ化は理解されていると思います。 今日は、2つのテーブルを会員番号でひもづけて、会員番号、会員名でグループ化し、金額は合計を選択します。 この状態では、会員ごとの合計だけですから、これを月ごとの合計にするには「MONTH」関数を使います。 また1月から12月までを横に並べるには、場合分けが必要になりますから、「IIF」関数を使います。 MONTH関数は日付様式の文字列から月を抽出してくれます。 Month([振替日) IIF関数は場合分けを判断してくれます。 IIF(条件式,条件式が真である場合の値,条件式が偽である場合の値) 具体的には、クエリ選択画面でフィールド「金額の合計」を下記の記述に書き替えます。 1月の合計: IIf(Month([振替日])=1,[金額],0) 直訳:振替日の月の欄が1であれば金額を合計し、1でなければ0を合計しなさい 集計欄は「合計」のままです。 これを12月まで並べればOKです。簡単ですが面倒です。 ちなみに合計行は何も思いつきません。通常は合計欄の表示はクエリではなく、レポートを使います。 レポートであれば合計は簡単に表示できます。 説明下手で申し訳ありません
お礼
お答え頂きありがとうございます! とても参考になりました(*^_^*)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
失礼しました。 [利用状況]テーブル ではないですね。 [振替結果] 会員番号・振替日・金額
補足
すみません、足りませんでしたね。 >各テーブルに存在するフィールドの型(文字型であれば桁数) 会員番号(文字と数字で1フィールドづつ) 会員名(文字) 振替日(文字で!0000\/00/00) 金額(通貨型) こういった感じでよろしいでしょうか?
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
[名簿]テーブル 会員番号・氏名・住所・電話番号 [利用状況]テーブル 日付・会員番号 各テーブルのキー 各テーブルに存在するフィールドの型(文字型であれば桁数) それを教えてくれれば、ズバリな回答が得られると思います。
補足
早速ありがとうございます! 名簿のテーブルののキーは『管理用番号』としてます。 実は、会員番号は、A1,A2,A3,B1,C1のように、A~Cのアルファベットと数字の組み合わせなのでフィールドを分けています。 なので、入力時に通し番号を管理用番号としてキーにしています。 振替結果のキーはオートナンバーです。 キーの必要性を理解していないので、とりあえず入れている状況です。 宜しくお願いいたします!
お礼
お礼が遅くなりましてすいません。 色々試してみました。 分かりやすい説明ありがとうございました! なんとか思うような結果にたどり着けました(*^_^*) 何度もありがとうございました!