質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

1回答

1488閲覧

複数テーブルのリレーション

hakutou

総合スコア11

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2023/09/25 06:55

編集2023/09/26 02:48

複数のテーブルのリレーションでエラーがでてます。
エラーが出ないようにしたいのですがお力添えいただけないでしょうか。


 Excelのpowerpivotを利用して支店ごとの売上を集計してます
リレーションで以下のエラーが発生しました

(エラーメッセージ)
「各列に含まれる値が重複しているため、リレーションシップを作成できません。一意の値のみが含まれる列を少なくとも1つ選択してください。」


(テーブル)

 ① メンバー
ファイル名
氏名
役職
決算期
カスタム

 ②役職

役職

 ③日報
ファイル名
略語
支店名
日付
省略1
省略2
省略3
場所
役職
氏名
金額


年月


現在、以下のリレーションは済です

  • ②の区分 → ④の区分

日報データを支店ごと、決算期ごと、人ごとに抽出することはできました
役職を追加して抽出したいと思ってますが決算期ごとに役職が違う人がいるので
どうやってリレーションしていったらいいか試行錯誤しております

テーブル①(メンバー)は決算期ごとの役職表です
※③の役職は間違ってるので参考にしません

(試したこと)

  1. ①の氏名と③の氏名のリレーション ⇒ エラー
  2. ①のファイル名と③のファイル名のリレーション ⇒ エラー
  3. ①にカスタム列(氏名&決算期)を作成、日報につなげられないか考察中

(例)
① メンバー
|ファイル名|氏名|役職|決算期   |カスタム    |
|     |A  |係長|2023年3月期|A‗2023年3月期|
|     |B  |アシ|2023年3月期|B‗2023年3月期|
|     |A  |主任|2022年3月期|A‗2022年3月期|
|     |B  |アシ|2022年3月期|B‗2022年3月期|

 ②役職
|№|役職|
|1 |部長|
|2 |係長|
|3 |主任|

③日報
|ファイル名|略語|支店名|日付   |場所|役職|氏名|金額|年|月|年月|
|     |あ |あああ|2023/3/1|場所|主任|A |50 |年|月|年月|

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

logres_Fan

2023/09/25 07:28

主キーを明示して下さい。
hakutou

2023/09/25 08:01

情報が不足してしまって申し訳ございません。 ③の主キーでしょうか? 氏名です。 イメージとしては、 2023年3月期の区分№「1」社員のAさん10,000を抽出できればと 例えば2022年3月期はパートだったら区分はパートで Aさんを主キーに縦軸、区分№、区分 横軸に2022年3月、2023年3月と表示出来たらうれしいです ①メンバー  ファイル名:2023年3月期.xlsx  氏名:Aさん  区分:社員  フォルダ名:2023年3月期 ②区分  №:1  区分:社員 ③データ  ファイル名:2023年3月期.xlsx  氏名:Aさん  金額:10,000
guest

回答1

0

 ①メンバーの主キーは氏名、②役職の主キーは役職No、③日報の主キーは、氏名、日付でしょう。①と③は氏名で紐づけましょう。エラーは、紐付けできない間違ったデータがあるからでは?

投稿2023/09/26 13:20

logres_Fan

総合スコア176

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hakutou

2023/09/27 00:04

質問にありますように ①と③を氏名で紐づけようとするとエラーがでます 残念ながらシステム出力のテストデータなので間違ったデータはありません logres_Fan様の「間違った」と私の認識が違ってましたら、申し訳ございません ①の氏名も③の氏名も重複しているからエラーがでるのではと思っております。 エラーの「一意の値」でないからだと判断しました。 何か解決する方法がありましたら教えていただけますでしょうか。 よろしくお願いいたします。
logres_Fan

2023/09/27 00:24

①の氏名が重複しているので、メンバー(主キー:氏名)とメンバー履歴(主キー:氏名,開始日)に分けて下さい。
hakutou

2023/09/28 00:03

はい、質問にありますようにメンバーは重複しております 決算期ごとの氏名と役職ファイルを全部結合して作成しております これは、パワークエリやパワーピポッド、Excelの操作が苦手(使えない)な人の 為に手動での作業を減らすためです。 logres_Fan様、もう少し教えていただけないでしょうか? ①開始日と決算期のことでしょうか?  日報は別のテーブルで決算期を結び付けてます。 ②メンバー履歴の主キーを2つにするということでしょうか?  リレーションで主キーを2つにできるのですか?? ③メンバーとメンバー履歴の2つのテーブルを作成ということでしょうか??  メンバーもメンバー履歴も決算期ごとに作成するということでしょうか? たくさん質問して申し訳ございません よろしくお願いいたします。
logres_Fan

2023/09/28 01:49

>①  役職が変更になった日付です。 >②  もし複合主キーが使えないソフトならば、使えるソフトに乗り換えましょう。 >③  決算期ごとに作成するものではなく、メンバーの追加、更新、削除に伴い変化するものです。必要があれば、決算期の タイミングで出力すれば済むだけです。  基本的なデータベースのルールを勉強して下さい。決算期が来るたびにありとあらゆる企業データを全部登録し直す、なんてナンセンスですよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問