MySQL4.0.17
次の(1)(2)のようなマスターとテーブルを、社員IDをキーに結合し、
(3)のように1行=1社員のフォーマットで出力するSQL文を教えてください。
(3)のようにするには、(2)を(社員ID別に)行と列を入れ替えなければなりませんよね?
SELECT
社員ID.社員マスター,
名前.社員マスター,
性別.社員マスター,
社員ID.出席テーブル
??ここに何か挿入???
FROM 社員マスター, 出席テーブル
WHERE
社員ID.社員マスター = 社員ID.出席テーブル
(1) 社員マスター
-----------------
社員ID 名前 性別
-----------------
1 鈴木 1
2 佐藤 1
3 山本 2
-----------------
(2) 出席テーブル
----------------------
社員ID 年月 出席日数
----------------------
1 200601 3
1 200602 4
1 200603 5
2 200601 10
2 200602 11
2 200603 12
3 200601 7
3 200602 8
3 200603 9
----------------------
出力したいフォーマット
---------------------------------------------------------------
名前ID 名前 性別 出席日数200601 出席日数200602 出席日数200603
---------------------------------------------------------------
1 鈴木 1 3 4 5
2 佐藤 1 10 11 12
3 山本 2 7 8 9
---------------------------------------------------------------
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
SELECT
`社員マスター`.`社員ID` AS `名前ID`
,`社員マスター`.`名前` AS `名前`
,`社員マスター`.`性別` AS `性別`
,`出席日数200601`.`出席日数` AS `出席日数200601`
,`出席日数200602`.`出席日数` AS `出席日数200602`
,`出席日数200603`.`出席日数` AS `出席日数200603`
FROM `社員マスター`
LEFT JOIN `出席テーブル` AS `出席日数200601` ON `社員マスター`.`社員ID` = `出席日数200601`.`社員ID` AND `出席日数200601`.`年月` = '200601'
LEFT JOIN `出席テーブル` AS `出席日数200602` ON `社員マスター`.`社員ID` = `出席日数200602`.`社員ID` AND `出席日数200602`.`年月` = '200602'
LEFT JOIN `出席テーブル` AS `出席日数200603` ON `社員マスター`.`社員ID` = `出席日数200603`.`社員ID` AND `出席日数200603`.`年月` = '200603'
これでいけるとおもいます。
saintandreさん、早速ありがとうございました。
本番環境のフィールド名などに置換しただけで完璧に動きました。
※元質問のSQL文は「フィールド名.テーブル名」でなく「テーブル名.フィールド名」でしたね(^_^;
SQL文は『基礎SQL』という入門書で勉強したんですが、LEFT JOINだけはよくわからなくて
あやふやにしてました。これで解決できるわけですね、大変勉強になりました。
今まで、それぞれのテーブル別にCSVでエキスポートして、全てのテーブルを
Excel(VLOOKUP関数)などで結合してたのですが、これからラクできそうです。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 会社・職場 会社のパソコンの起動時間で労働時間を判断する会社です。私の隣の席の若い男性社員がいつもダラダラ仕事し 4 2022/04/16 22:27
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(セキュリティ) これは個人情報取扱に違反していますか? 5 2022/11/15 22:02
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お金持ちのテーブル
-
会社の飲み会の幹事になり、座...
-
「テーブルに座って……」という...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
複数テーブルにわたるCOUNT
-
L2SWはARPテーブルを持っている?
-
MySQLで複数テーブルを作成する
-
テーブル所有者、スキーマ所有...
-
SQL 外部結合
-
包丁が危険
-
アクセスのリンクテーブル一覧...
-
MACアドレス見えない
-
論理名とコメント構文(?)について
-
【PHP】SQL文のSUM関数で出力し...
-
【SQL】グループ化した際の最頻...
-
テーブルの白く剥がれてるところに
-
ダイニングテーブルの真上に来...
-
まるいテーブル 円い 丸い 漢字...
-
リレーションシップが出来ません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
会社の飲み会の幹事になり、座...
-
テーブルリンク リンク元を知...
-
L2SWはARPテーブルを持っている?
-
テーブルの白く剥がれてるところに
-
飲み会で、座敷orテーブルどち...
-
まるいテーブル 円い 丸い 漢字...
-
1つのテーブルに同じデータを参...
-
このテーブルで
-
置き配された食べ物を袋からど...
-
外部キーだけのテーブル(主キ...
-
【PHP】SQL文のSUM関数で出力し...
-
「テーブルに座って……」という...
-
男性と2人で飲食店に行きテーブ...
-
アクセスのリンクテーブル一覧...
-
一致するデータのみ削除したい
-
論理名とコメント構文(?)について
-
ACCESSで3ファイルを結合して、...
-
MySQLで複数テーブルを作成する
-
複数テーブルにわたるCOUNT
-
SQL 外部結合
おすすめ情報