accessクエリで下記のような表を作りたいのですが、データベースの作り方の基本がわからないので質問させて下さい。
A社 B社 C社
面積 広い 普通 狭い
環境 良い 良い 悪い
人員 多い 少ない 多い
開発力 なし なし あり
このような表をクエリで出力させたいと思っています。左の項目はどんどん増えていきます。
このような場合、データベース(テーブル)はどのようにつくるのが基本なのでしょうか。下記のようにすればいいものでしょうか。
区分 内容
A社 面積 広い
B社 面積 普通
C社 面積 狭い
A社 環境 良い
B社 環境 良い
C社 環境 悪い
#このようにした場合、目的の表示をする場合のクエリなどは、どのようにしたらいいものでしょうか。
No.1ベストアンサー
- 回答日時:
クエリの作り方としては、クロス集計クエリになります。
ただし、普通の作り方としては、「A社」「B社」・・・と「面積」「環境」の軸は入れ替わります。(できなくはないですが・・・)
直接、クエリを作りたければ、例にあげられたテーブルでかまいません。
ただ、正規化(これをきっちりと説明するのは、大変なので、別途探してみてください。)をするなら、少し構造が変わってきます。
まず、会社テーブルをつくり以下のようにします。(主キーは会社ID)
会社ID 社名
1 A社
2 B社
3 C社
あと区分と内容の対比ですがこれを関連づけるとなると区分テーブル、内容テーブルが必要になります。
内容テーブル(主キーは内容ID。内容テーブルは別の振り方もあります。)
内容ID 区分 内容
1 1 広い
2 1 普通
3 1 狭い
4 2 良い
5 2 悪い
区分テーブル(主キーは区分ID)
区分ID 区分
1 面積
2 環境
3 人員
4つ目のテーブルとして、3つのテーブルの関連を結びつけるテーブルを作ります。(これも作り方は、いろいろありますが、1例を挙げます。)
関連テーブル(主キーは会社IDと内容IDの複合主キー)
会社ID 内容ID
1 1
1 4
2 2
2 4
3 3
3 5
ここで会社テーブルの会社IDと関連テーブルの会社ID、区分テーブルの区分IDと内容テーブルの区分ID、内容テーブルの内容IDと関連テーブルの内容IDにリレーションを張ります。
これで正規化されたデータベースができました。利点は、会社・区分・内容が増えたり変更などがあった場合、データベースの変更が一箇所で済み、混乱しないことです。逆に欠点としては、データの検索に時間がかかることです。
あとは、例にあげられているテーブルのように表示するクエリを作るだけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) クリップスタジオペイントについて。 1 2022/11/15 11:38
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- 工学 至急お願いします。 誘電体と接する導体表面に面密度のσ正の電荷を一様に与えると、境界面には応力が発生 1 2022/07/31 02:27
- 中途・キャリア 面接の退職理由ですが、どちらの方が聞こえがまだ良いでしょうか? ①コロナ&後遺症の体調不良が続き、退 9 2022/03/23 21:29
- モニター・ディスプレイ 自室のモニターのみ目が疲れる原因が知りたい。 3 2022/12/17 19:59
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- プラモデル・鉄道模型・模型製作 ジオラマの水の表現に リキテックス=グロスメディウムを 使うと肉痩せ、ひび割れ が おこり、リキテッ 1 2022/05/28 08:16
- 相続・譲渡・売却 境界確定、これは一般的なやり方ですか? 6 2023/01/24 22:10
- 関東 高田馬場は栄えなくても良いと思いませんか? 3 2023/04/29 00:16
- 中途・キャリア 至急。転職試験合否について。 ご覧頂きありがとうございます。 転職を試みている社会人2年目20歳の第 4 2023/01/07 21:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessクエリでの、LIKE条件
-
2つのテーブルを比較して一致し...
-
Accessでテーブルからテーブル...
-
ACCESSで指定されたテーブルか...
-
Accessの追加クエリで既存のテ...
-
ACCESSに同時アクセス(編集)を...
-
リンクテーブルを CopyObject ...
-
Accessレコードの追加や変更が...
-
AccessをMDBファイルで使う場合...
-
SQLで日付を条件に削除したい
-
ODBCで接続するとDBに変更/追加...
-
ツリー構造をRDBで表現するには?
-
データ型の変更
-
Accessのフォームの並び替えを...
-
データベースで変更の多いテー...
-
DAOのTableDefs("TblName").Con...
-
3つの表を1つに縦に連結する
-
Access SELECT INTO に関する質...
-
AccessのDlookupの引数設定につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
3つの表を1つに縦に連結する
-
SQLで日付を条件に削除したい
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報