
Accessでクエリの作成、多対1対多ができるか教えてください。
データベースもAccessも初心者で、初級者用のテキストを見ながら作業しています。
職場で使用するデータベースです。
仕事は顧客からプロジェクトを請け負い、それに対し発生する費用の管理をしています。
プロジェクトは長期にわたるので、顧客に対する請求は時期が違う複数回になります。また、外注しモニターすることもあるので、外注先への支払いも発生します。
リレーションは受注番号でしています。
請求(多)←基本(1)→支払(多)
作りたいリストは年度に終了したものについて、請求額と支払額を合計した一覧表です。
つまり、
(番号)(プロジェクト名)(終了日)(請求額の合計)(支払額の合計)
単純にクエリデザインからフィールドを選び、日付を指定し請求・支払共グループ化で合計しましたが上手くいきません。
請求・支払のテーブルからグループ化したクエリを作り"つまり番号に対し一つのレコードにしました"、基本のテーブルとクエリを作って見ましたが、それも上手くいきません。
デザインの画面からでは上記のクエリを作るのは無理なんでしょうか。
よろしくご指導いただきますようお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
ユニオン、サブクエリは非常に便利ですけども、重たくて、Accessにはやや不向きです。
どうしても、というときやむを得ずに使う感じです。
その代わりAccessには便利な関数が充実しているので、それを使いこなしていった方が軽いし、無難です。
今回は、DSumという関数を使えば行けると思うので、ちょっと調べてみてください。
請求ないし、支払いテーブルの金額欄から、抽出条件(受注番号)を指定して、合計を取得できます。
ご連絡ありがとうございます。
Accessは式とかVBAなど知らなくても作業できるので、つい勉強するのを怠っていました。関数なども毛嫌いせずに勉強した方が良いですね。
今回の問題は、実は解決しました。3つのテーブルからそれぞれのクエリを作り、3つのクエリを結合したクエリを作るのが上手くいかなかったのですが、デザイングリッドを眺めていたらリレーションの線がないのに気がつき、リレーションを設定した所正確な数字を返してくれました。リレーションはテーブル同士で結んでおけばクエリを作ったとしてもずっと機能してくれると思っていたのが間違いでした。
きちんと勉強したことがないので、上手くいかないとSQLが理解できないからと逃げがちでしたが、基本的なことだけでも結構仕事ができるよくできたアプリケーションだと思いました。
No.1
- 回答日時:
基本のテーブルを T_基本:フィールドを[受注番号]、[プロジェクト名]、[終了日]・・・同じ受注番号は1つ
請求のテーブルを T_請求:フィールドを[受注番号]、[請求額]・・・・同じ受注番号が複数ある
支払のテーブルを T_支払:フィールドを[受注番号]、[支払額]・・・・同じ受注番号が複数ある
とすると、
クエリAでT_基本の「終了日」をキーにして「受注番号」を抽出します。
クエリBで「クエリA」と「T_請求」、「T_支払」を受注番号で連結して集計クエリにし、
受注番号はグループ、請求額と支払額は合計にしたらできないでしょうか?
お忙しい所アドバイスいただきありがとうございました。
早速試してみましたが、残念ながら上手くいきませんでした。
もしかするとサブクエリ?と思いましたがSQLはまだ使ったことがなく…
悪あがきで、請求と支払をユニオンで1つにして基本とクエリを作ったみようかと作業中です。
Accessは奥が深いです…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessの帳票フォームで重複デ...
-
ACCESS VBA クエリを開く
-
あるフィールドの最大値を条件...
-
アクセスのテーブルを分ける理...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
INSERT INTO ステートメントに...
-
異なるサーバのDBデータ同士を...
-
FROM の中で CASE を使えるでし...
-
ORACLEでLONG項目からCHAR項目...
-
Oracle 2つのDate型の値の差を...
-
ACCESSのクエリで集計で、先頭...
-
Accessクエリーで両方のテーブ...
-
SUBSTRING 関数に渡した長さの...
-
Oracleのビュー作成時に「指定...
-
ACCESSで400以上のフィールドが...
-
access テーブル内のレコード...
-
Accessでテーブルをデータシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのテーブルを分ける理...
-
Accessフォーム全レコードをPDF...
-
Accessの帳票フォームで重複デ...
-
Access2021 「ISNULL関数には引...
-
あるフィールドの最大値を条件...
-
MS ACCESS 商品価格変更時の該...
-
ACCESS VBA クエリを開く
-
マイクロソフト アクセス リレ...
-
ボイスコッド正規形
-
フィールド名が取得したい
-
SQL文について
-
SQL文でのDISTINCT
-
こんな関数か式?SQLってありま...
-
データベースの正規化について...
-
accessのレポートで困ってます。
-
SQLで合計表示
-
usingの意味がわからないのですが
-
SQL文でexistsの使い方がわかり...
-
曜日を表す項目
-
正規化すると遅くなるというの...
おすすめ情報