
以下にある二つのテーブル(coursemaster, opencourses)を結合して
月ごとに講義があるかをo,xで一覧にして[期待結果]の様な表を抽出したいです。
coursemaster テーブル
course_id | course_name
1 | 経理講義
2 | 財務講義
3 | 簿記講義
4 | 税理講義
opencoursesテーブル
month course_id
200706 | 1
200706 | 3
200706 | 4
200707 | 4
200708 | 2
200708 | 4
[期待結果]
経理講義 財務講義 簿記講義 税理講義
200706 ○ × ○ ○
200707 × × × ○
200708 × ○ × ○
以下の様なSQL文で表を結合してみたのですが
日付の値が重複されてしまい、期待通りの結果になりません。
誰かご教授いただけないでしょうか?
SELECT
month AS 開講日
,CASE WHEN course_name='経理講義' THEN '○' ELSE '×' END AS 経理講義
,CASE WHEN course_name='財務講義' THEN '○' ELSE '×' END AS 財務講義
,CASE WHEN course_name='簿記講義' THEN '○' ELSE '×' END AS 簿記講義
,CASE WHEN course_name='税理講義' THEN '○' ELSE '×' END AS 税理講義
FROM
OpenCourses AS OC
INNER JOIN
CourseMaster AS CM
ON
OC.course_id = CM.course_id
ORDER BY
1
;
No.1ベストアンサー
- 回答日時:
month でグループ化しないと、opencoursesテーブルに有る分の行数が出力されますね。
グループ化すると、CASE式を入れ子にする必要が出てきますが。
SELECT
month AS 開講日
,CASE WHEN SUM(CASE WHEN course_name = '経理講義' THEN 1 ELSE 0 END) > 0 THEN '○' ELSE '×' END AS 経理講義
,CASE WHEN SUM(CASE WHEN course_name = '財務講義' THEN 1 ELSE 0 END) > 0 THEN '○' ELSE '×' END AS 財務講義
,CASE WHEN SUM(CASE WHEN course_name = '簿記講義' THEN 1 ELSE 0 END) > 0 THEN '○' ELSE '×' END AS 簿記講義
,CASE WHEN SUM(CASE WHEN course_name = '税理講義' THEN 1 ELSE 0 END) > 0 THEN '○' ELSE '×' END AS 税理講義
FROM
OpenCourses AS OC
INNER JOIN
CourseMaster AS CM
ON OC.course_id = CM.course_id
GROUP BY month
ORDER BY 1
;
参考URL:http://codezine.jp/article/detail/751
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
PostgressからMySQL(MariaDB)...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
SQL*Loaderで、データを加工し...
-
CLOB型へのINSERT
-
異なるスキーマからデータを抽...
-
DELETE文でFROM句を省略した場合
-
Oracle10gで他のスキマーのテー...
-
viewのバックアップ
-
Viewにインデックスは張れ...
-
テーブル名を[]でくくらないと...
-
oracle 10g ユーザやスキーマご...
-
datapumpの実行方法について
-
Data Pump で大量データインポ...
-
RDBのテーブル種類の違い
-
ACCESS 複数テーブル・複数フィ...
-
ストアドで別スキーマのテーブ...
-
オラクルのビューの存在について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
UNIQUEをつけたときのINDEXテー...
-
PostgressからMySQL(MariaDB)...
-
クエリアナライザのsp_helpコマ...
-
SQL文作成のお願い
-
ベスト3の抽出方法
-
検索スピードの速い方法を教え...
-
SQL SELECT文 別テーブルのレコ...
-
こんばんは。
-
postgreSQLのオートナンバーに...
-
Perl DBI でSELECT ilikeの結果...
-
特定カラムの値を変更したいの...
-
Oracle でのデータベースサイズ...
-
pl/pgsqlで変数の扱い
-
テーブル作成 外部参照 配列
-
チェックボックスから、データ...
-
賢いSQL文がわからない
-
マルチテーブル・インサート
-
データを削除しても表領域の使...
おすすめ情報