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

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

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

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

Q&A

解決済

4回答

1123閲覧

【Access】SQLコマンドでの出力方法について

退会済みユーザー

退会済みユーザー

総合スコア0

SQL

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

0グッド

0クリップ

投稿2020/04/22 05:15

編集2020/04/22 05:27

SQLについて教えてください。

■テーブルA
社員ID 社員氏名 部門コード 入社日 退職日
00001 田中 太郎 001 2018/04/01 2019/08/01
00002 山本 太郎 002 2017/04/01 2018/08/01
00003 鈴木 太郎 003 2016/04/01 2017/08/01

■テーブルB
部門コード 部門名
001 営業部
002 総務部
003 経理部

上記のようなテーブルがあった場合、以下のようなイメージに出力させるにはどのようなSQL文を書けばよいか教えて頂けないでしょうか。SQL初心者です。よろしくお願いいたします。

<出力イメージ>
社員ID 社員氏名 部門コード 部門名 入社日  退職日
00001 田中 太郎 001 営業部 2018/04/01 2019/08/01
00002 山本 太郎 002 総務部 2017/04/01 2018/08/01
00003 鈴木 太郎 003 経理部 2016/04/01 2017/08/01

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

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

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

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

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

m.ts10806

2020/04/22 05:18

質問タグにある内容はタイトルに含む必要はありません。要件を記載してください。 またSQLと言っても方言があります。想定しているDBとバージョンを追記(タグも追加)してください
SHOMI

2020/04/22 05:19

テーブルAに部門名が含まれていますが、出力順を並び替えするだけですか?
退会済みユーザー

退会済みユーザー

2020/04/22 05:26

タイトルとテーブルAの内容を修正しました。 (テーブルAの部門名を削除しました。誤記です) Accessを使ってSQLを操作しています。
yambejp

2020/04/22 05:26

テーブルAは部門名がないはずです。 もしあるとしたらそれは正規化が不足しています
yambejp

2020/04/22 05:35

テーブルA(ユーザーマスター?)にある部門コードは、必ずテーブルB(部門マスター)に 存在するのでしょうか? またテーブルBの部門コードはユニークな属性を担保されているのでしょうか? そういうところがSQLの肝です
退会済みユーザー

退会済みユーザー

2020/04/22 05:38

yambejpさん はい。テーブルAの部門コードは、テーブルBに存在しています。 すいません、勉強不足でユニークな属性の意味がよく分かっていないのですが、テーブルBの部門コードは文字列型になっています。
yambejp

2020/04/22 05:50 編集

ユニークというのは同じコードが、同じテーブル内に複数存在しないと言うことで 例えば 001 営業部 のほかに 001 営業サポート部 のように同じコードが使われていないですよね?という確認です 逆に 999 営業部 のようにコードさえ違えば部門名がかぶる分には、さほど問題はありません
退会済みユーザー

退会済みユーザー

2020/04/22 05:50

なるほどですね。ありがとうございます。 はい。重複するようなコードは入っていません。
yambejp

2020/04/22 05:52

初心者ということなのであえてしつこく書きましたが、リレーションをするというのは こういった色んな条件が必要になるので、テーブルの設計についてはきちんと 提示するように心がけましょう
退会済みユーザー

退会済みユーザー

2020/04/22 05:54

分かりました。肝心なアドバイスありがとうございます 因みに今回の質問内容である<出力イメージ>を出すにはどのようなSQL文を書いたらよいでしょうか。
guest

回答4

0

下記の通りで出力されるかと思います。

select "社員ID", "社員氏名", "部門コード", "部門名", "入社名", "退職日" from テーブルA;

selectの後にカラム名を明示することで表示順を制御するだけですね。テーブルAに部門名の情報が含まれていなければテーブルAとテーブルBを結合する必要があったりしますが、今回は不要なようですね。

投稿2020/04/22 05:27

j_takamine

総合スコア6

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

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

退会済みユーザー

退会済みユーザー

2020/04/22 05:29

すみません。テーブルAの部門名は誤記ですので削除いたしました。
guest

0

ベストアンサー

同名フィールドがテーブル名を指定しても同名フィールドがあるとエラーになるようなので、部門コードに別名をつけて

SQL

1SELECT 2T1.社員ID, T1.社員氏名, T1.部門コード AS "CODE", T2.部門名, T1.入社日, T1.退職日 3FROM 4テーブルA T1, 5テーブルB T2 6WHERE 7T1.部門コード = T2.部門コード 8ORDER BY T1.社員ID

投稿2020/04/22 05:21

編集2020/04/22 07:32
SHOMI

総合スコア4079

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

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

退会済みユーザー

退会済みユーザー

2020/04/22 05:42

回答ありがとうございます。 教えていただいたコマンドを使用してみましたが 指定されたフィールド"部門コード"がSQLステートメントのFROM句にある複数のテーブルを参照しました。 というエラーが出てしまいます。
SHOMI

2020/04/22 06:08

部門コードにT1.をつけていますか?
退会済みユーザー

退会済みユーザー

2020/04/22 06:08

再度やってみましたが FROMのテーブルBを指して、FROM句の構文エラーです。とメッセージが出ます。
退会済みユーザー

退会済みユーザー

2020/04/22 06:09

>部門コードにT1.をつけていますか? はい、つけています。
退会済みユーザー

退会済みユーザー

2020/04/22 06:34

INNER JOINで書いてみましたが 指定されたフィールド"部門コード"がSQLステートメントのFROM句にある複数のテーブルを参照しました。のエラーが出てきますね。
退会済みユーザー

退会済みユーザー

2020/04/22 06:53

>部門コードに別名をつけるとどうなりますか? エラーは出なくなりました。その代わりに パラメータの入力(T1.退職日)を求められるウィンドウが出てきました。 ここには何を指定すれば良いのでしょうか?
退会済みユーザー

退会済みユーザー

2020/04/22 06:54

回答が少し前後してしまいましたが、T1.部門コード AS "CODE"にしなくても、パラメータの入力を求められるようになります。
退会済みユーザー

退会済みユーザー

2020/04/22 07:08

ありがとうございます。無事解決できました。 ご丁寧にフォローしていただき本当にありがとうございました。
guest

0

SELECT
社員ID,社員氏名,部門名,部門コード,入社日,退職日
FROM
テーブルA

で取得できませんか?

投稿2020/04/22 05:19

m8623798917

総合スコア12

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

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

退会済みユーザー

退会済みユーザー

2020/04/22 05:56

回答ありがとうございます。 すいません、テーブルAの部門名は誤記です。
guest

0

順番を変えたいだけですか?

投稿2020/04/22 05:17

m8623798917

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問