OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

会社別一覧表を作りたい

  • 困ってます
  • 質問No.229354
  • 閲覧数222
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 47% (767/1609)

accessクエリで下記のような表を作りたいのですが、データベースの作り方の基本がわからないので質問させて下さい。

   A社 B社 C社
面積 広い 普通 狭い
環境 良い 良い 悪い
人員 多い 少ない 多い
開発力 なし なし あり

このような表をクエリで出力させたいと思っています。左の項目はどんどん増えていきます。
このような場合、データベース(テーブル)はどのようにつくるのが基本なのでしょうか。下記のようにすればいいものでしょうか。

   区分 内容
A社 面積 広い
B社 面積 普通
C社 面積 狭い
A社 環境 良い
B社 環境 良い
C社 環境 悪い

#このようにした場合、目的の表示をする場合のクエリなどは、どのようにしたらいいものでしょうか。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル10

ベストアンサー率 42% (79/186)

クエリの作り方としては、クロス集計クエリになります。
ただし、普通の作り方としては、「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にリレーションを張ります。

これで正規化されたデータベースができました。利点は、会社・区分・内容が増えたり変更などがあった場合、データベースの変更が一箇所で済み、混乱しないことです。逆に欠点としては、データの検索に時間がかかることです。
あとは、例にあげられているテーブルのように表示するクエリを作るだけです。
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ