二つのテーブルを使いフィールドの値の一部を利用するクエリを作りたいです。
会議室の備品は、A02とA03がA01と同じ内容、B02がB01と同じ内容になります。
(会議室名の最初のアルファベットが同じものが、備品も同じになります)
よろしくお願いします。
会議室 テーブル
会議室名 | |
---|---|
A01 | |
A02 | |
A03 | |
B01 | |
B02 |
会議室備品 テーブル
会議室名 | 椅子机 | ホワイトボード |
---|---|---|
A01 | 20 | 2 |
B01 | 10 | 0 |
会議室クエリ実行結果
会議室名 | 椅子机 | ホワイトボード |
---|---|---|
A01 | 20 | 2 |
A02 | 20 | 2 |
A03 | 20 | 2 |
B01 | 10 | 0 |
B02 | 10 | 0 |
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
2つのテーブルを会議室名でリレーションします。
この際、備品の無い会議室もあるでしょうから、会議室テーブル ➡ 会議室備品テーブル となるようにリレーションします。
会議室の備品は、A02とA03がA01と同じ内容、B02がB01と同じ内容になります。
上記見落としていました。
クエリーをSQLビューで開き、以下のSQLを貼り付け後、デザインビューに切り替えてみて下さい。
※会議室名を、「会議室グループ」と「会議室番号」を分けて定義して、デザインビューでも編集できるようにした方が良いかと思います。
取り敢えず現状では、デザインビューでは編集できず、SQLビューのみので編集になります。
SQL
1select 会議室テーブル.会議室名, 会議室備品テーブル.机椅子, 会議室備品テーブル.ホワイトボード 2from 会議室テーブル 3 left join 会議室備品テーブル 4 on 会議室テーブル.会議室名 like left(会議室備品テーブル.会議室名, 1) & "*"
投稿2021/10/26 02:58
編集2021/10/26 03:07総合スコア25327
0
ベストアンサー
下記のようなSQLでどうでしょう。
sql
1SELECT 2 会議室テーブル.会議室名, 会議室備品テーブル.椅子机, 会議室備品テーブル.ホワイトボード 3FROM 4 会議室テーブル INNER JOIN 会議室備品テーブル 5 ON 会議室テーブル.会議室名 Like Left(会議室備品テーブル.会議室名,1) & "*";
補足アドバイス
もし、会議室テーブルに存在して、会議室備品テーブルに存在しない会議室名がありそれも表示したい場合は、
INNER JOIN
を LEFT JOIN
に変更てください。
あと、余計なお世話かもしれませんが、
テーブル設計が変更可能なら、下記のような正規化されたものにすることをお勧めします。
会議室テーブル
会議室名1 | 会議室名2 |
---|---|
A | 01 |
A | 02 |
A | 03 |
B | 01 |
B1 | 02 |
会議室名1 と 会議室名2 で複数フィールド主キー
会議室備品テーブル
会議室名1 | 備品名 | 数量 |
---|---|---|
A | 椅子机 | 20 |
A | ホワイトボード | 2 |
B | 椅子机 | 10 |
B | ホワイトボード | 0 |
会議室名1 と 備品名 で複数フィールド主キー
現状のテーブルだと管理する備品が増えた場合、そのたびにテーブルデザインを変更する必要が出てきます。
ご希望の結果にするには、クエリのデザインビューで 会議室テーブルと会議室備品テーブルを結合して、クロス集計クエリにすれば可能です。
投稿2021/10/26 02:57
編集2021/10/29 06:23総合スコア34075
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/26 12:07
2021/10/29 02:00 編集
2021/10/29 06:23
2021/10/30 06:20
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/26 10:04 編集